Filter löschen
Filter löschen

How can i Change pixel color?

44 Ansichten (letzte 30 Tage)
Ansam Nazar
Ansam Nazar am 7 Jul. 2020
Kommentiert: Image Analyst am 12 Jul. 2020
Hello
I have a color image of type RGB and I need to change the color of each point (red, yellow, orange) to green. I hope that there is a programmatic solution to this problem.
  5 Kommentare
jonas
jonas am 7 Jul. 2020
Better replace loop by logical indexing and upload an example image.
Mehmed Saad
Mehmed Saad am 8 Jul. 2020
jonas is right, understand the code and try to replace for loops with logical indexing

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Mehmed Saad
Mehmed Saad am 7 Jul. 2020
Bearbeitet: Mehmed Saad am 8 Jul. 2020
I = imread('red.jpg');
figure,subplot(121),imshow(I)
th = 20;
[x,y,~]=size(I);
for ii=1:x
for jj=1:y
if((I(ii,jj,1)-th)> I(ii,jj,2)&& (I(ii,jj,1)-th)>I(ii,jj,3))
I(ii,jj,1) = 0;I(ii,jj,2) = 255;I(ii,jj,3) = 0;
end
end
end
subplot(122),imshow(I)
For same effect you can try this
I(ii,jj,1:2) = circshift(I(ii,jj,1:2),1);
I(:,:,1:2) = circshift(I(:,:,1:2),1,3);%without for loop
  4 Kommentare
Ansam Nazar
Ansam Nazar am 12 Jul. 2020
Thanks alot for all of your help. but the function is not working in Matlab R2018a. the error was:
"Undefined function or variable 'imsplit'."
Image Analyst
Image Analyst am 12 Jul. 2020
You can do it manually:
r = rgbImage(:, :, 1);
g = rgbImage(:, :, 2);
b = rgbImage(:, :, 3);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Image Processing Toolbox 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!

Translated by