주어진 중심점에 대해 블록 중심에 해당 점이있는 3x3 블록을 작성하려고합니다. 이건 내 코드입니다 : 당신이 볼 수 있듯이, 나는 내가하고 싶은 것은 입력에 좌표의 모든 이웃과 그 행렬을 채우는 것입니다 0으로 초기화 된 3 × 3 행렬을 작성픽셀 좌표를 주면 이웃을 모두 추출 할 수 있습니까?
function frmBlock = fetchNeighbors(frame, row, column)
%Create a 3x3 matrix contains the neighbors of the point(x, y)
%[n, m] = size(frame);
frmBlock = zeros(3, 3);
x = floor(row);
y = floor(column);
frmBlock(1) = frame(x-1, y-1);
frmBlock(2) = frame(x, y-1);
frmBlock(3) = frame(x+1, y+1);
frmBlock(4) = frame(x-1, y);
frmBlock(5) = frame(x, y);
frmBlock(6) = frame(x+1, y);
frmBlock(7) = frame(x-1, y+1);
frmBlock(8) = frame(x, y+1);
frmBlock(9) = frame(x+1, y-1);
end
(행, 열) . 어떤 이유로 이웃을 얻을 수 없다면 아무 것도하지 않습니다 (즉, 3x3 블록의 위치를 0으로 지정하십시오).
나는 오류를 가지고이 코드는 말을 실행하면 :
Error using fetchNeighbors (line 12) Index exceeds matrix dimensions.
누군가가 도와 드릴까요?
RGB 형식의 컬러 이미지를 사용하려면'frmBlock = nan (3,3,3)'이 필요합니다. 3 차원은 RBG 벡터입니다. 'frmBlock (1,1, :) = frame (x-1, y-1, :)은 한 픽셀에 대한 트릭을해야한다. – Crowley
아니요 컬러 이미지가 없습니다. – SenDjasni
질문이 업데이트됩니다. – SenDjasni