我在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。忽略“;”错误(如果有)。该代码正在编译,必须是一个错字。