Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测rgb图像格式是否为灰度? 具有OpenCV C++的图像处理程序。 在我的程序中,两条预处理路径分别用于两种类型的灰度图像和彩色图像。 但有时我得到的图像是灰度的,但以RGB格式存储意味着当外观图像是灰度的,但这幅图像有3个通道_C++_Opencv_Image Processing - Fatal编程技术网

如何检测rgb图像格式是否为灰度? 具有OpenCV C++的图像处理程序。 在我的程序中,两条预处理路径分别用于两种类型的灰度图像和彩色图像。 但有时我得到的图像是灰度的,但以RGB格式存储意味着当外观图像是灰度的,但这幅图像有3个通道

如何检测rgb图像格式是否为灰度? 具有OpenCV C++的图像处理程序。 在我的程序中,两条预处理路径分别用于两种类型的灰度图像和彩色图像。 但有时我得到的图像是灰度的,但以RGB格式存储意味着当外观图像是灰度的,但这幅图像有3个通道,c++,opencv,image-processing,C++,Opencv,Image Processing,如何检测rgb图像格式是否为彩色或灰色 几乎所有的灰色都有红色==绿色==蓝色。只需检查红绿色和蓝色值是否为+10或-10就可以了 如果您希望使用特定形式的灰色,您可以查看可以形成的相关灰色颜色,或者在RGB输入门户上自己进行实验。您可以检查像素,并检查它们的R、G和B值是否每次都相同 cv::Mat image; // your image with type CV_8UC3 bool grayscale = true; for(int i = 0; i < image.rows; i

如何检测rgb图像格式是否为彩色或灰色

几乎所有的灰色都有
红色==绿色==蓝色
。只需检查红绿色和蓝色值是否为
+10或-10
就可以了


如果您希望使用特定形式的灰色,您可以查看可以形成的相关灰色颜色,或者在RGB输入门户上自己进行实验。

您可以检查像素,并检查它们的R、G和B值是否每次都相同

cv::Mat image;  // your image with type CV_8UC3
bool grayscale = true;
for(int i = 0; i < image.rows; i++) {
    cv::Vec3b* ptr = image.ptr<cv::Vec3b>(i);
    for(int j = 0; j < image.cols; j++) {
        if(!(ptr[j][0] == ptr[j][1] && ptr[j][0] == ptr[j][2])) {
            grayscale = false;
            break;
        }
    }
    if(!grayscale)
        break;
}
cv::Mat image;//您的图像类型为CV_8UC3
布尔灰度=真;
对于(int i=0;i
由于灰色被定义为没有饱和度,因此您可以将其转换为具有饱和度分量(例如HSL)的颜色空间,并检查饱和度通道是否为零,或其最大值是否非常小。