How to create image matrix via
Mostrar comentarios más antiguos
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?
Respuesta aceptada
Más respuestas (7)
Andrei Bobrov
el 18 de Ag. de 2011
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
el 18 de Ag. de 2011
Vincenzo
el 18 de Ag. de 2011
1 comentario
Image Analyst
el 20 de Ag. de 2011
Your row1, etc. are fractional numbers. You need to use round(), floor(), ceil(), or int32() to get them into integers.
Walter Roberson
el 18 de Ag. de 2011
0 votos
This sounds oddly like yesterday's question http://www.mathworks.com/matlabcentral/answers/13866-move-rectangle-over-te-image
Vincenzo
el 20 de Ag. de 2011
0 votos
Vincenzo
el 7 de Sept. de 2011
2 comentarios
Walter Roberson
el 7 de Sept. de 2011
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
el 8 de Sept. de 2011
Vincenzo
el 9 de Sept. de 2011
0 votos
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!