Overlay gray ROI on an image
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ely Raz
am 15 Jan. 2022
Kommentiert: Walter Roberson
am 15 Jan. 2022
Based on this question (https://www.mathworks.com/matlabcentral/answers/1620785-overlay-roi-on-an-image) and one of the answers (@Image Analyst), I can not overlay the grayRoi on the rgbImage as the outcome image as some colors where it should be gray. How can I solve it?
Code:
close all;
clear all;
clc;
rgbImage = imread('sevilla.jpg');
figure('Name','Sevilla');
imshow(rgbImage)
axis('on', 'image')
uiwait(helpdlg('Draw a rectangle'))
roi = drawrectangle('StripeColor','r')
pos = roi.Position
% OPTIONAL Get rid of graphical overlay and replace with yellow rectangle.
delete(roi)
rectangle('Position', pos, 'EdgeColor', 'y', 'LineWidth', 2);
% Crop image using indexing.
col1 = floor(pos(1)); % Column 1
col2 = ceil(pos(1) + pos(3)); % Column 2
row1 = floor(pos(2)); % Row 1
row2 = ceil(pos(2) + pos(4)); % Row 2
GrayRoi = rgb2gray(rgbImage(row1 : row2, col1 : col2, :));
figure
imshow(GrayRoi)
axis('on', 'image')
newI = rgbImage;
newI(row1 : row2, col1 : col2) = GrayRoi;
figure
imshow(newI)
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 15 Jan. 2022
newI(row1 : row2, col1 : col2) = repmat(GrayRoi, [1 1 size(newI,3)]);
2 Kommentare
Walter Roberson
am 15 Jan. 2022
newI(row1 : row2, col1 : col2, :) = repmat(GrayRoi, [1 1 size(newI,3)]);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Read, Write, and Modify Image finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!