выполнить обнаружение края на рои - PullRequest
0 голосов
/ 23 мая 2018

eight.jpg Я использую восемь изображений из matlab eight.tif

, и у меня есть следующий код:

FullImage = imread('eight.tif');
roi_col = [50 50 250 250];
roi_row = [200 50 50 200];
ROI_help1 = roipoly(FullImage,roi_col,roi_row);
roi_col = [100 70 200 200];
roi_row = [180 100 70 180];
ROI_help2 = roipoly(FullImage,roi_col,roi_row);
ROI=logical(ROI_help2-ROI_help1);
YourFilter = @(x) edge(FullImage,'Canny',0.1);
J = roifilt2(FullImage,ROI,YourFilter);
figure, imshow(FullImage)
overlay=imoverlay(FullImage,J,'red');
hold on;
imshow(overlay);

Это дает мне это: обнаружение края выполнено с помощью canny on roi

Как я могу выполнить обнаружение края canny только по кругу, оставляя внутреннюю и внешнюю красную область нетронутыми, поэтому на нем должно отображаться нормальное изображение?

1 Ответ

0 голосов
/ 24 мая 2018

Решил мою проблему.просто нужно создать дополнение ROI и вычесть из J

ROI_neg=imcomplement(ROI);
LOL=J-ROI_neg;
figure;
overlay=imoverlay(Image,LOL,'red');
hold on;
imshow(overlay);

Однако, если я использую другое изображение (сшитые изображения. слишком большие для обновления), оно не будет работать.Я пропускаю какие-то особые требования?Тип данных и т. Д.?я использую .tif

...