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

发布于 2024-10-31 18:02:09 字数 409 浏览 6 评论 0原文

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

我使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

巴黎盛开的樱花 2024-11-07 18:02:09

您已经将图像转换为 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.

悲歌长辞 2024-11-07 18:02:09

是的,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°).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文