gpt4 book ai didi

opencv - 如何从opencv 2.1中的HSV图像获取单 channel 值图像?

转载 作者:太空宇宙 更新时间:2023-11-03 20:42:34 25 4
gpt4 key购买 nike

我是opencv的初学者。我正在使用 opencv v2.1。我已将 RGB 图像转换为 HSV 图像。现在我想分别获取单 channel 的色相、明度和饱和度。我应该怎么办?我在这里看到过类似的问题,但没有人回答。请帮忙。

最佳答案

您可以使用与访问 RGB 图像相同的方式访问,其中第一个 channel 用于 H,第二个 channel 用于 S,第三个 channel 用于 V。

如果您使用的是 OpenCV 2.1,那么您一定使用了 IplImage,对吗?就像你的 HSV 图像是IplImage *src.

IplImage* h = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );
IplImage* s = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );
IplImage* v = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );
// Split image onto the color planes
cvSplit( src, h, s, v, NULL );

cvSplit 函数将多 channel 数组拆分为多个单 channel 。如果我错了,请纠正我。我建议使用 OpenCV 2.4。它具有像 cvMat 这样的结构,就像 2D 数组一样非常容易处理。

编辑:如果您使用的是 Mat,那么您可以轻松地将 channel 分开。假设您的 hsv 垫是 Mat img_hsv。然后:

vector<Mat> hsv_planes;
split( img_hsv, hsv_planes );
hsv_planes[0] // H channel
hsv_planes[1] // S channel
hsv_planes[2] // V channel

看看你是否能解决这个问题。

关于opencv - 如何从opencv 2.1中的HSV图像获取单 channel 值图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17185151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com