2016-05-28 5 views
0

私はこのアルゴリズムを将来の侵食の実装に書いています。私はアルゴリズムをテストしていますが、この問題があります:.at()を使って白色を割り当てる

白い色ですべてのピクセルを色付けしようとすると、黒と白の列がある画像が表示されます。私はどうやって解決できるの?

は、ここで私は、C++でのOpenCVで働いている私のコード

Mat Morph_op_manager::erode_img(Mat image) { 

//stucture element attribute 

int strel_rows = 5; 
int strel_cols = 5; 

// center structure element attribute 
int cr = 3; 
int cc = 3; 

//number of columns/rows after strel center 
int nrac = strel_rows - cr ; 
int ncac = strel_cols - cr ; 


int min_val = 255; 



for (int i = cr-1 ; i <image.rows-nrac ; i++) { 
    for (int j = cc-1; j < image.cols-ncac ; j++) { 

     for (int ii = 0; ii <strel_rows ; ii++) { 
      for (int jj = 0; jj <strel_cols ; jj++) { 

       image.at<int>(i-(nrac-ii),j-(ncac-jj)) = 255; 
      } 
     } 
    } 
} 

だ、ファイルは黒と白のイメージ.TIFFです。ここに私ですoutput

+0

北極熊を雪の嵐の中でレンダリングするのに最適な方法ではありませんが、まだかなり印象的です。 –

答えて

0

imageオブジェクトの宣言はありませんが、タイプはCV_8Uと考えられます。

ピクセルにアクセスするときは、image.at<int>((i-(nrac-ii),j-(ncac-jj))の代わりにimage.at<uchar>((i-(nrac-ii),j-(ncac-jj))と記述してください。これは、マトリックスのデータがuchar(CV_8U)で、int(CV_32S)ではないと宣言したためです。

+0

ありがとう、それは動作します – userfi

関連する問題