2013-12-10 1 views
1

저는 CV가 처음이고 질문이 생깁니다. 페이딩 회색 막대 (검정색에서 흰색으로)를 만들고 싶습니다. 나는 pixelvalues ​​쓸 때cv : 매트, 모든 두 번째 픽셀이 설정됩니다.

Mat fadedgrey=Mat(20,256,CV_8UC1); 

:

for(int x=0;x<20;x++){ 
    for(int y=0;y<256;y++){ 
    fadedgrey.at<int>(x,y)=y;}} 

을 결과는 다음과 같다 :

그래서 나는 매트를 initializied 는 매 두 번째 열에 기록 된,하지만 난 CV_8UC1 하나입니다 생각 채널, 2 채널 매트가 아닙니다.

예를 들어 위치 (1,129)에 설정된 값은 두 번째 행의 시작 부분에 픽셀로 표시됩니다.

도와주세요! 인사말!

답변

1

매트릭스의 유형이 CV_8UC1 인 경우 각 요소의 크기는 1 바이트이고 .at<int>이 아닌 또는 그와 비슷한 것을 사용해야합니다.

이 방법으로 문제가 아니지만, 당신은 또한 최종 업 수 행과 열에 대한 혼란, 당신의 매트 생성자가 실제로 UCHAR 데이터 형식 도움이 x,y

+0

에 주위의 반대 방향 인 nRows,nCols을 걸립니다 ... 나머지는 시도하고 오류 TY – user3088624

관련 문제