伊莉討論區
標題:
c++和OpenCV的Connected Component Labeling問題
[打印本頁]
作者:
red9906001
時間:
2015-1-14 07:30 PM
標題:
c++和OpenCV的Connected Component Labeling問題
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
a333221
時間:
2015-1-16 01:43 AM
可以說明一下這裡
if(f.val[0]==BINARY_1){
n += 1;
Label.val[0]=n;
cvSet2D ( label, y, x, Label);
}
複製代碼
為何要這樣
n += 1;
Label.val[0]=n;
複製代碼
取值嗎?
作者:
a333221
時間:
2015-1-17 05:37 PM
再請問一下,沒誤會的話,底下的 code 是在做相鄰點的比較,
然後決定是否變更(x,y)這點的顏色。
此時為何是求 min,而不是尋找特定顏色?
for (int x = 0; x<label->height; x++)
{
for (int y = 0; y<label->width; y++)
{
CvScalar l, l_left_top, l_top, l_right_top, l_pre;
l = cvGet2D(label, x, y);
if (x != 0 && y != 0){
l_left_top = cvGet2D(label, x - 1, y - 1);
}
if (x != 0){
l_top = cvGet2D(label, x - 1, y);
}
if (x != 0 && y != label->width - 1){
l_right_top = cvGet2D(label, x - 1, y + 1);
}
if (y != 0){
l_pre = cvGet2D(label, x, y - 1);
}
if (l.val[0] != 0)
{
min = l.val[0];
if (x>0 && y>0 && l_left_top.val[0] < min && l_left_top.val[0] != 0)
min = l_left_top.val[0];
if (x>0 && l_top.val[0] < min && l_top.val[0] != 0)
min = l_top.val[0];
if (x>0 && y<label->width - 1 && l_right_top.val[0] < min && l_right_top.val[0] != 0)
min = l_right_top.val[0];
if (y>0 && l_pre.val[0] < min && l_pre.val[0] != 0)
min = l_pre.val[0];
if (min != l.val[0])
{
l.val[0] = min;
cvSet2D(label, x, y, l);
change = true;
}
}
}
}
複製代碼
歡迎光臨 伊莉討論區 (http://www40.eyny.com/)
Powered by Discuz!