Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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
Python 为什么opencv和matlab中的luma参数不同?_Python_Matlab_Opencv_Image Processing_Numpy - Fatal编程技术网

Python 为什么opencv和matlab中的luma参数不同?

Python 为什么opencv和matlab中的luma参数不同?,python,matlab,opencv,image-processing,numpy,Python,Matlab,Opencv,Image Processing,Numpy,我使用以下代码在matlab中从图像中提取luma: I = imread('myphoto.bmp'); I = rgb2ycbcr(I); I = I[:, :, 1]; imwrite(I, 'luma.bmp'); 这一个在opencv python中也可以这样做: I = cv2.imread('myphoto.bmp') I = cv2.cvtColor(I, cv2.COLOR_BGR2YCR_CB) I = I[:, :, 0] cv2.imwrite('luma.bmp',

我使用以下代码在matlab中从图像中提取luma:

I = imread('myphoto.bmp');
I = rgb2ycbcr(I);
I = I[:, :, 1];
imwrite(I, 'luma.bmp');
这一个在opencv python中也可以这样做:

I = cv2.imread('myphoto.bmp')
I = cv2.cvtColor(I, cv2.COLOR_BGR2YCR_CB)
I = I[:, :, 0]
cv2.imwrite('luma.bmp', I)
但是我得到了完全不同的结果

以下是获得的图像:

Matlab:

OpenCV:


这背后有什么原因吗?如何获得更相似的结果?

rgb2ycbcr和cvtColor的官方文档中解释了差异的原因,您已经仔细阅读了,不是吗?无论如何。。。您可以对亮度值应用线性变换,如L=16+(219*L)/255中所示。MATLAB还可以对OpenCV没有校正的图像进行gamma校正。当我查看两个框架中加载的相同图像之间的像素分布时,我意外地发现了这一点。尝试将每个图像规格化为
[0255]
以保持一致,就像GBOFI建议的那样。@rayryeng Uhm,当我将其作为bmp文件加载时,我没有注意到该图像存在这样的问题。虽然当我使用jpeg时,我会得到非常不同的结果。@GBOFI您可以将注释作为答案发布…注意,默认情况下,将图像转换为8位整数类型。如果要按原样加载图像,请将
标志
选项设置为
-1