Assigning values ta set of points in 2d image
11 ビュー (過去 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.
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!