伊莉討論區

標題: c++和OpenCV的Connected Component Labeling問題 [打印本頁]

作者: red9906001    時間: 2015-1-14 07:30 PM     標題: c++和OpenCV的Connected Component Labeling問題

提示: 作者被禁止或刪除 內容自動屏蔽
作者: a333221    時間: 2015-1-16 01:43 AM

可以說明一下這裡
  1.             if(f.val[0]==BINARY_1){
  2.                 n += 1;
  3.                 Label.val[0]=n;
  4.                 cvSet2D ( label, y, x, Label);
  5.             }
複製代碼
為何要這樣
  1.                 n += 1;
  2.                 Label.val[0]=n;
複製代碼
取值嗎?

作者: a333221    時間: 2015-1-17 05:37 PM

再請問一下,沒誤會的話,底下的 code 是在做相鄰點的比較,
然後決定是否變更(x,y)這點的顏色。
此時為何是求 min,而不是尋找特定顏色?

  1. for (int x = 0; x<label->height; x++)
  2. {
  3.         for (int y = 0; y<label->width; y++)
  4.         {
  5.                 CvScalar l, l_left_top, l_top, l_right_top, l_pre;
  6.                 l = cvGet2D(label, x, y);

  7.                 if (x != 0 && y != 0){
  8.                         l_left_top = cvGet2D(label, x - 1, y - 1);
  9.                 }

  10.                 if (x != 0){
  11.                         l_top = cvGet2D(label, x - 1, y);
  12.                 }

  13.                 if (x != 0 && y != label->width - 1){
  14.                         l_right_top = cvGet2D(label, x - 1, y + 1);
  15.                 }

  16.                 if (y != 0){
  17.                         l_pre = cvGet2D(label, x, y - 1);
  18.                 }

  19.                 if (l.val[0] != 0)
  20.                 {
  21.                         min = l.val[0];

  22.                         if (x>0 && y>0 && l_left_top.val[0] < min && l_left_top.val[0] != 0)
  23.                                 min = l_left_top.val[0];
  24.                         if (x>0 && l_top.val[0] < min && l_top.val[0] != 0)
  25.                                 min = l_top.val[0];
  26.                         if (x>0 && y<label->width - 1 && l_right_top.val[0] < min && l_right_top.val[0] != 0)
  27.                                 min = l_right_top.val[0];
  28.                         if (y>0 && l_pre.val[0] < min && l_pre.val[0] != 0)
  29.                                 min = l_pre.val[0];


  30.                         if (min != l.val[0])
  31.                         {
  32.                                 l.val[0] = min;
  33.                                 cvSet2D(label, x, y, l);
  34.                                 change = true;
  35.                         }

  36.                 }
  37.         }
  38. }
複製代碼





歡迎光臨 伊莉討論區 (http://www40.eyny.com/) Powered by Discuz!