How to create image matrix via
显示 更早的评论
I have the following problem: I have a file.mat, containing a matrix 240X320. If I click on imagesc, I see an image referencing the matrix ... Now, I want to select a portion of the image by clicking on "insert-> rectangle" and from there derive the submatrix. If I click with right mouse button I can show M-code, which gives me only the coordinates of the rectangle, but how can I obtain the submatrix?
采纳的回答
更多回答(7 个)
Andrei Bobrov
2011-8-18
M = randi([-123 421],10) % your matrix
xy = [2,7;4,8] % coordinates of your rectangle in view [x1,x2;y1,y2]
variant
c = arrayfun(@(i1)xy(i1,1):xy(i1,2),1:2,'un',0);
SM = M(c{:}) % your submatrix
or
SM = M(xy(1,1):xy(1,2),xy(2,1):xy(2,2)) % your submatrix
Vincenzo
2011-8-18
1 个评论
Image Analyst
2011-8-20
Your row1, etc. are fractional numbers. You need to use round(), floor(), ceil(), or int32() to get them into integers.
Walter Roberson
2011-8-18
0 个投票
This sounds oddly like yesterday's question http://www.mathworks.com/matlabcentral/answers/13866-move-rectangle-over-te-image
Vincenzo
2011-9-7
2 个评论
Walter Roberson
2011-9-7
x1=0.3867;
row1=int32(x1*320);
That is, do not convert the multiplication factor to integer: convert the result of the multiplication to integer.
Vincenzo
2011-9-8
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!