How can i Change pixel color?
36 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Mehmed Saad
2020 年 7 月 8 日
jonas is right, understand the code and try to replace for loops with logical indexing
採用された回答
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)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/328235/image.png)
For same effect you can try this
I(ii,jj,1:2) = circshift(I(ii,jj,1:2),1);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/328673/image.png)
I(:,:,1:2) = circshift(I(:,:,1:2),1,3);%without for loop
4 件のコメント
Image Analyst
2020 年 7 月 12 日
You can do it manually:
r = rgbImage(:, :, 1);
g = rgbImage(:, :, 2);
b = rgbImage(:, :, 3);
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!