How to mark image with respect to given logical mask?

I've an image and a logical mask produced from same image. I wish to mark all the pixels on original image with respect to the pixels which are 1 in logical mask. This was my solution:
%'img' is original image. 'Icornr' is the logical mask. 'Ioverlay is the image I wish to output.
Ioverlay = imoverlay(img, Icornr, [1 0 1]);
imshow(Ioverlay);
axis equal tight on;
title('Harris Corner overlayed on Original');
colorbar;
This is the output I get where ROI are marked with magneta. What I wish to accomplish is to rather than marking the pixels with . they should be marked with + or x. An example of such is given below:

 Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 18 Okt. 2020
Try something like this
img = imread('pears.png');
Icornr = rand(size(img, [1 2])) > 0.995; % example mask
figure();
ax1 = axes();
Ioverlay = imoverlay(img, Icornr, [1 0 1]);
imshow(Ioverlay, 'Parent', ax1);
axis equal tight on;
title('Harris Corner overlayed on Original');
colorbar;
figure();
ax2 = axes();
hold on
[r, c] = find(Icornr);
imshow(img, 'Parent', ax2);
plot(ax2, c, r, '+');
axis equal tight on;
title('Harris Corner overlayed on Original');
colorbar;

2 Kommentare

Yes, The second output is exactly what I was looking for.
I am glad to be of help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Images finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by