How can I store pixel position in two different array ?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Rajesh Gothwal
am 21 Jun. 2013
Kommentiert: KaMu
am 10 Dez. 2013
Hi , I want to store the position of the pixel where Intensity value is 255. There are two arrays A and B for rows and columns respectively. I am using the below code, although code is error free but not returning expected result.
I=imread('img.jpg');
A=[];
B=[];
k=0;
for i=1:80
for j=1:120
if I(i, j)==255
A(k)=i;
B(k)=j;
end
k=k+1;
end
end
Image dimension is 80*120. Thanx.....
Akzeptierte Antwort
Weitere Antworten (1)
Image Analyst
am 23 Jun. 2013
You need to have k=k+1 INSIDE your "if", not outside it. That's the cause of your problem.
Of course you can just get rows and columns directly from find() without using linear indexes and ind2sub, or a nested "for" loop:
[rows, columns] = find(I == 255);
rows is what you call A, and columns is what you call B. I encourage you to use more descriptive variable names, like I did. Also, don't use I as a variable name - it looks too much like 1 or l. Use a descriptive name like grayImage or binaryImage or something.
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!