首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

opencv里的CvConnectedComp,该怎么处理

2012-09-11 
opencv里的CvConnectedComp我使用cvPyrSegmentation对一副图像进行色彩分割,返回的结果有一个CvConnectedC

opencv里的CvConnectedComp
我使用cvPyrSegmentation对一副图像进行色彩分割,返回的结果有一个CvConnectedComp
它包含了各个连通域的信息,我现在想对每个连通域进行遍历,请问如何操作。。。
谢谢


[解决办法]
你这个是个CvSeq序列吧,每个元素是CvConnectedComp类型?

CvSeq是跟CvMemStorage搭配使用的,数据存储在CvMemStorage里,怎么遍历跟c++的STL容器差不多,简单说就是个数组,你看看CvSeq的成员函数就知道了

CvConnectedComp结构:
typedef struct CvConnectedComp
{
double area;
CvScalar value;
CvRect rect;
CvSeq* contour;
} CvConnectedComp;

openCV的问题去这里看比较好:http://www.opencv.org.cn/
[解决办法]
好像cvPyrSegmentation得到的CvConnectedComp 并不包含contour信息,估计你得对每个区域转成二值图像来提取,或者直接在分割图上提取
typedef struct CvConnectedComp
{
double area; /* 连通域的面积 */
float value; /* 分割域的灰度缩放值 */
CvRect rect; /* 分割域的 ROI */
} CvConnectedComp;

[解决办法]

探讨
没听太懂。。。
转换为二值图像是什么意思,连通区域可能有很多啊。。。

[解决办法]
cvThreshold用来二值化图像,你可以将你所需要提取的区域置为白色,其他区域置黑,然后二值化,然后用FindContours函数来获取轮廓。openCV带的有提取轮廓的示例:squares (CVPR01_course)


[解决办法]
探讨
比方吧,我想把彩色分割后标号为2的区域进行反色,该怎么操作?谢谢~

[解决办法]
探讨
data.value表示的是对这个value代表的区域进行填充么?
seed怎么处理?

热点排行