How can i Change pixel color?

89 ビュー (過去 30 日間)
Ansam Nazar
Ansam Nazar 2020 年 7 月 7 日
コメント済み: Image Analyst 2020 年 7 月 12 日
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 件のコメント
jonas
jonas 2020 年 7 月 7 日
Better replace loop by logical indexing and upload an example image.
Mehmed Saad
Mehmed Saad 2020 年 7 月 8 日
jonas is right, understand the code and try to replace for loops with logical indexing

サインインしてコメントする。

採用された回答

Mehmed Saad
Mehmed Saad 2020 年 7 月 7 日
編集済み: Mehmed Saad 2020 年 7 月 8 日
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 件のコメント
Ansam Nazar
Ansam Nazar 2020 年 7 月 12 日
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 2020 年 7 月 12 日
You can do it manually:
r = rgbImage(:, :, 1);
g = rgbImage(:, :, 2);
b = rgbImage(:, :, 3);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImage Processing Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by