在OpenCV中分割频道并合并C ++,Python

时间:2019-04-13 09:05:34

标签: python c++ opencv

我在python中有以下代码:

h,s,v=cv2.split(img1)
for i in range(1920):
    for j in range(1080):
        if(v[i][j]<250):
            v[i][j]=0
img1=cv2.merge((h,s,v))
img1=cv2.cvtColor(img1,cv2.COLOR_HSV2BGR)
img1=cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY)

当我将下面的代码转换为C ++代码时,会得到不同的结果。

Mat gray,hsv[3];
split(gray,hsv);
for(int i=0;i<1920;i++)
    {
        for(int j=0;j<1080;j++)
        {
            if(hsv[2].at<unsigned char>(i,j)<250)
            {
                hsv[2].at<unsigned char>(i,j)=0;
            }
        }
    }
channels.push_back(hsv[0]);
channels.push_back(hsv[1]);
channels.push_back(hsv[2]);
merge(channels,gray);
cvtColor(gray,gray,COLOR_HSV2BGR);
cvtColor(gray,im1,COLOR_BGR2GRAY);

P.S。忽略“;”错误(如果有)。该代码正在编译,必须是一个错字。

0 个答案:

没有答案