Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

what's wrong with this code, when i'm trying to read the 3 channels of each frame of the video

1 vue (au cours des 30 derniers jours)
bay rem
bay rem le 6 Fév 2016
Clôturé : MATLAB Answer Bot le 20 Août 2021
while i'm reading an RGB video, i wanted to extract for each frame its 3 channels? BUT here results looks weird, any one can Explain to me the reason is? here there is the code i used:
videoReader = vision.VideoFileReader('video3.avi');
J=0;
while ~isDone(videoReader);
J=J+1
frameRGB = step(videoReader);
figure,imshow(frameRGB(:,:,1));
figure,imshow(frameRGB(:,:,2));
figure,imshow(frameRGB(:,:,3));
end
and here there is the three channels extracted:
  1 commentaire
John BG
John BG le 6 Fév 2016
please hang the original image in this blog .0 imshow shows 1 layer only input as Black&White. You feed RGB layers and you are seeing the grading of each primary colour, but see the grading in grey, not RGB respectively. Or perhaps your input is Black & White and we, the readers, don't know yet.

Réponses (1)

Walter Roberson
Walter Roberson le 6 Fév 2016
videoReader = vision.VideoFileReader('video3.avi');
fred = figure();
axred = axes('Parent', fred);
fgreen = figure();
axgreen = axes('Parent', fgreen);
fblue = figure();
axblue = axes('Parent', fblue);
J=0;
while ~isDone(videoReader);
J=J+1
frameRGB = step(videoReader);
imgR = frameRGB;
imgR(:,:,2:3) = 0;
imshow(imgR, 'Parent', axred); title(axred, 'Red pane');
imgG = frameRGB;
imgG(:,:,[1 3]) = 0;
imshow(imgG, 'Parent', axgreen); title(axgreen, 'Green pane');
imgB = frameRGB;
imgB(:,:,1:2) = 0;
imshow(imgB, 'Parent', axblue); title(axblue, 'Blue pane');
drawnow();
end

Community Treasure Hunt

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

Start Hunting!

Translated by