如何使用opencv设置某些像素的色调值

如何使用opencv设置某些像素的色调值,opencv,hsv,Opencv,Hsv,我需要更改图像中某些像素的色调,但我不知道如何设置它们 我用CV\u BGR2HSV转换了HSV中的图像,现在我用for by rows和cols循环 如何访问每个像素的色调 对于设置RGB,我使用此代码 CvScalar s; s=cvGet2D(imgRGB,i,j); // get the (i,j) pixel value printf("B=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]); s.val[0]=240; s.val[1]=100

我需要更改图像中某些像素的色调,但我不知道如何设置它们

我用
CV\u BGR2HSV
转换了HSV中的图像,现在我用for by rows和cols循环

如何访问每个像素的色调

对于设置RGB,我使用此代码

CvScalar s;
s=cvGet2D(imgRGB,i,j); // get the (i,j) pixel value
printf("B=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]);
s.val[0]=240;
s.val[1]=100;
s.val[2]=100;
cvSet2D(imgRGB,i,j,s); // set the (i,j) pixel value

您已经将图像转换为HSV,因此图像的3层现在对应于色调、饱和度和值:

  • s.val[0]
    是色调
  • s.val[1]
    是饱和度
  • s.val[2]
    是该值

因此,继续使用与RGB图像完全相同的方法来获取和设置像素值。

是的,openCV使用180°即(0°-179°)HSV圆柱体;而在MS油漆中通常为(0°-240°),理想情况下为(0°-360°)。因此,openCV将为您提供(0°-179°)色调的结果。

是的,谢谢。。问题是CV_BGR2HSV无法转换为真正的hsv格式,因为它只使用179°。。所以,当我改变色调时,我感到有些奇怪的结果,我觉得我做错了什么