CONDITION CHECKING R G B VALUES IN AN IMAGE WITH SCALAR USING MATLAB?
4 次查看(过去 30 天)
显示 更早的评论
hi, I have an image 'pq'(RGB image), which is shown below
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/190895/image.png)
now i want to check the following conditions by obtaining the R, G, B from the image
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/190896/image.png)
Where R, G, B are
R=pq(:,1)
G=pq(:,2)
B=pq(:,3)
6 个评论
Paolo
2018-5-29
The following works for me:
num = xlsread('pq.xlsx')
R = num(:,1);
G = num(:,2);
B = num(:,3);
for ii=1:numel(R)
if(R(ii)>=1 && R(ii)<=250) && (G(ii)>=0 && G(ii)<=1) && (B(ii)>=0 && B(ii)<=255)
disp(R(ii));
end
end
Are you sure that the second condition is correct for the green value? Because you are checking between 0 and 1 only.
回答(2 个)
Image Analyst
2018-5-29
Try this:
[rows, columns] = size(pq)
for row = 1 : rows
R = pq(row, 1);
G = pq(row, 2);
B = pq(row, 3);
if (R>=1 && R<=250) && (G>=0 && G<=1) && (B>=0 && B<=255)
% and so on....
end
end
0 个评论
Ameer Hamza
2018-5-29
You can solve the error by converting && to a single &
(R>=1 & R<=250) & (G>=0 & G<=1) & (B>=0 & B<=255)
but I doubt it will actually do, what you are thinking it will do.
3 个评论
Ameer Hamza
2018-5-29
But OP needs to understand that using a vector logical expression with if and while condition need to be handled carefully. The expression is essentially equaled to
if all((R>=1 & R<=250) & (G>=0 & G<=1) & (B>=0 & B<=255))
Unless the requirement is to apply the same condition to every pixel. This will probably result in a wrong logic.
Image Analyst
2018-5-29
Yeah we talked about all this in his earlier question - about whether to use single or double ampersands. Now (in this question) he has an array pq, that seems to be a subset of all the pixels in the image. Perhaps from a masking operation - who knows? That's what I do in my answer - just the subset. Regardless, I still have doubts he knows what he wants to do, or is asking the correct question.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!