remove pixels with certain rgb values
Show older comments
Hi, I want to remove pixels with R value >100 and G value>100, here is my code:
[height width rgb] = size (I); % I is RGB image
for coloum = 1:width
for row =1:height
if (I(row,coloum,1)> 100 && I(row,coloum,2)> 100)
I(row,coloum,1)= 0;
I(row,coloum,2)= 0;
I(row,coloum,3)= 0;
end
end
The error is "Index exceeds matrix dimensions". Does anyone have an idea about this? Thanks in advance.
Accepted Answer
More Answers (1)
Jos (10584)
on 16 Feb 2018
1 vote
Is I really a 3D array or is the third dimension just 1?
Simply take a look at the value of rgb, after the size(I) command :)
6 Comments
Tian Tian
on 16 Feb 2018
Jos (10584)
on 16 Feb 2018
There is a difference between indexed images (2D, like yours) and true colour images (3D, with RGB triplets in the 3rd dimension). This is explained here:
Tian Tian
on 16 Feb 2018
Jos (10584)
on 16 Feb 2018
What does size(I) return?
What does a small portion of I, like I(1:4,1:4,:) contain?
Tian Tian
on 17 Feb 2018
Tian Tian
on 17 Feb 2018
Categories
Find more on Image Segmentation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!