Image matrix cell color

5 次查看(过去 30 天)
I have imported an image using imread - which creates a matrix of the image. The size of such a matrix is n x m x p. I think p refers to the colour information of each cell. I am using imshow to display these matrices.
Parts of the image, that are white, have the value of 255. How can I change the colour of a specific cell to a colour of my choice? I have tried stuff like X(1,10) = 230, but that doesnt seem to do anything. Could someone please help? Thanks,

采纳的回答

DGM
DGM 2021-10-10
编辑:DGM 2021-10-10
Let's say you just want to change one pixel
A = imread('peppers.png');
newcolor = [230 50 185];
B = A;
B(50,50,:) = newcolor;
imshow(B); hold on
plot(50,50,'wo','markersize',50) % highlight the pixel that changed
Or say you want to change a rectangular block of pixels
B = A;
B(50:100,50:100,:) = repmat(permute(newcolor,[1 3 2]),[51 51]);
clf; % for web view
imshow(B);
Or say you want to change an arbitrary region of the image:
mask = uint8(rgb2gray(A) > 220);
colorpict = uint8(repmat(permute(newcolor,[1 3 2]),size(mask)));
B = A.*(1-mask) + colorpict.*mask;
clf; % for web view
imshow(B);
There are plenty of other ways

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by