如何使用opencv设置某些像素的色调值
我需要更改图像某些像素的色调,但我不知道如何设置它们!
我使用 CV_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
I need to change the hue of some pixels of my image, but i don't know how to set them!
I converted the image in HSV with CV_BGR2HSV
and now i'm cycling with a for by rows and cols...
how can I access each pixel's hue?
for setting RGB i'm using this code...
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您已经将图像转换为 HSV,因此图像的 3 层现在对应于色调、饱和度和值:
s.val[0]
是色调。s.val[1]
是饱和度。s.val[2]
是值。因此,请继续使用与 RGB 图像完全相同的方法来获取和设置像素值。
You already converted your image to HSV, so the 3 layers of the image now correspond to Hue, Saturation and Value:
s.val[0]
is the hue.s.val[1]
is the saturation.s.val[2]
is the value.So go ahead and use exactly the same method as for your RGB images to get and set the pixel values.
是的,openCV使用HSV的180°,即(0°-179°)圆柱;而在 MS 涂料中通常为 (0°-240°),理想情况下为 (0°-360°)。因此,openCV 会给出 (0°-179°) 的色调结果。
Yes, openCV uses 180° i.e., (0°-179°) cylinder of HSV; while normally its (0°-240°) in MS paint and ideally (0°-360°). So, openCV gives you result of hue from (0°-179°).