I have a grayscale image,with four double values 0.25, 0.75 1 and 0.
I need to plot the X-axis co-ordination for each pixel and its intensity (0.25, 0.75, 1 but not 0) . How can Access the X and Y pixel position on the image? is there a straight forward method other than using for loops?

 채택된 답변

Image Analyst
Image Analyst 2013년 12월 10일

0 개 추천

I don't know what "X-axis co-ordination" is. Can you explain. What do you want to do? It's not clear. Do you want to plot an intensity profile between one point and another? If so use improfile().
theProfile = improfile([x1, x2], [y1, y2]); % Careful - x is column, not row.
Do you want to find all rows where the intensity is more than 0.75? If so:
[rows, columns] = find(grayImage>0.75);
though this is rarely useful or necessary and it's almost always better to just use the binary image
binaryImage = grayImage?0.75;

댓글 수: 1

KaMu
KaMu 2013년 12월 11일
Yes, I need to plot an intensity profile on a horizontal line Thanks Image Analyst. improfile is what I need!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

sixwwwwww
sixwwwwww 2013년 12월 10일
편집: sixwwwwww 2013년 12월 10일

0 개 추천

try this:
[Y, X] = ind2sub(size(b), find(ismember(b, 1)))
here b is your image matrix. It gives you X and Y positions for value 1. you can extend it to other values according to ur need

질문:

2013년 12월 10일

댓글:

2013년 12월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by