#matlab #image-processing
#matlab #обработка изображений
Вопрос:
Обнаружение границ с помощью масок Собеля в Matlab этот код не принимает указанную ниже строку
этот код выдает ошибку при res = maskx.* bwsquare;
я смотрел пошаговое руководство в Интернете, но все равно не принимал эту строку
clear
clc
close all
origional = imread('q1jjy.png');
rubic = origional(:,1:500,:);
figure()
imshow(rubic)
bw= uint8((1/3)*(double(rubic(:,:,1)) double(rubic(:,:,2)) double(rubic(:,:,3))));
figure()
imshow(bw)
bwdbl = double(bw);
figure()
maskx = [-1 -2 -1, 0 0 0, 1 2 1 ];
[r,c] = size(bw);
OUT = zeros(r-3, c-3);
for idx = 1:(r-3)
for jdx = 1:(c-3)
bwsquare = bwdbl(idx:(idx 2), jdx:(jdx 2));
res = maskx.*bwsquare;
OUT(idx,jdx)=sum(sum(res));
end
end
Gx= OUT;
figure()
imshow(Gx)
masky = [-1 0 1; -2 0 2; -1 0 1];
for idx = 1:(r-3)
for jdx = 1:(c-3)
bwsquare = bwdbl(idx:(idx 2), jdx:(jdx 2));
res = masky.*bwsquare;
OUT(idx,jdx)=sum(sum(res));
end
end
Gy = OUT;
figure()
imshow(Gy);
G = sqrt(Gxdbl.^2 Gydbl.^2);
figure()
imshow(G);
Комментарии:
1. Ваше определение
maskx
не кажется правильным. Попробуйте заменить,
на;
, чтобы создать маску 3×3. Также было бы полезно, если бы вы опубликовали фактическое сообщение об ошибке, которое вы получили.2. «он не принимает эту строку» не является полезной постановкой проблемы. Вы всегда должны копировать и вставлять полное сообщение об ошибке в свой вопрос.