Filter löschen
Filter löschen

Transforming a matrix in an image

1 Ansicht (letzte 30 Tage)
Oliver Lestrange
Oliver Lestrange am 10 Aug. 2020
Kommentiert: Oliver Lestrange am 10 Aug. 2020
Hi community,
I am transforming a matrix in an image, but when I try to see the green and blue components of the image a get the error Index exceeds matrix dimensions.
dmin1=2;
n=15;
A=ones(n);
A(2:dmin1:end,2:dmin1:end)=0;
im = imshow(A,[])
%im = image(im,'CDataMapping','scaled')
...
... % code that add some colors to im
R=im(:,:,1)
G=im(:,:,2)
B=im(:,:,3)
What I'm doing wrong?
  4 Kommentare
VBBV
VBBV am 10 Aug. 2020
Bearbeitet: VBBV am 10 Aug. 2020
Try using dmin1 = 1; as the increment step.
Oliver Lestrange
Oliver Lestrange am 10 Aug. 2020
I can't do that Vasishta Bhargava, that will change the appearance of the matrix.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 10 Aug. 2020
First of all, your image is A, not im. im is what imshow returns and it is the handle to an image object, not an actual image itself. Secondly, you declared A as a 2-D gray scale image, not a 3-D color image. You'd need to make A like this:
A=ones(n, n, 3);
A(2:dmin1:end, 2:dmin1:end, :) = 0;
R = A(:,:,1)
G = A(:,:,2)
B = A(:,:,3)
or
[R, G, B] = imsplit(A);

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by