2

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

我用 HSV 转换了图像,CV_BGR2HSV现在我用 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
4

2 回答 2

4

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

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

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

于 2011-04-12T22:23:15.263 回答
0

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

于 2011-11-10T13:38:01.860 回答