Overlay gray ROI on an image
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ely Raz
le 15 Jan 2022
Commenté : Walter Roberson
le 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 commentaires
Réponse acceptée
Walter Roberson
le 15 Jan 2022
newI(row1 : row2, col1 : col2) = repmat(GrayRoi, [1 1 size(newI,3)]);
2 commentaires
Walter Roberson
le 15 Jan 2022
newI(row1 : row2, col1 : col2, :) = repmat(GrayRoi, [1 1 size(newI,3)]);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Read, Write, and Modify Image dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!