Assigning values ta set of points in 2d image
조회 수: 9 (최근 30일)
이전 댓글 표시
After performing an operation on an image I get a set of points, the Cartesian coordinates are stored in a variable 'xy' of dimension n by 2. So xy(:,1) is x coordinate of each point and xy(:,2)is the y coordinate.
I want to create a new image of the same dimensions as the original image with these set of points being 1 and other points 0.
Let me create a problem to explain it further.
A = magic(10);
[x,y] = find(A<=20);
xy = [x,y];
B = zeros(size(A));
% now assign B as 1 for all points A<=20
Please help with the assignment command.
B(x,y) doesn't work i would like to know why ?
댓글 수: 0
채택된 답변
Image Analyst
2011년 7월 17일
Then just do it this way:
A = magic(10)
[y,x] = find(A<=20);
% Note: y = rows, x = cols
B = zeros(size(A));
linearInd = sub2ind(size(A), y, x)
B(linearInd) = 1
댓글 수: 0
추가 답변 (2개)
Image Analyst
2011년 7월 17일
Why not just simply say
B = A<=20;
You can cast B from logical to another data type after that if you want.
Vishwajith Upendra
2011년 7월 17일
for i=1:1:numel(x)
B(x(i),y(i))=1
end
This should do it. Number of elements in x and y are gonna be the same. So, took one of them.
Hope, that helped.
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!