Problem with a function using rgb2ycbcr

5 visualizzazioni (ultimi 30 giorni)
Brunna Albuquerque
Brunna Albuquerque il 11 Giu 2013
Modificato: sanidhyak il 3 Feb 2025
I am trying to do a function using rgb2ycbcr. It converts the image, then shows it up and saves it, but when I call the function, this error appears:
"Subscript indices must either be real positive integers or logicals."
Here's my code:
function x = rgb2yuv( x )
x = rgb2ycbcr(x)
imshow(x)
imwrite(x, 'C:\Users\aaaa\Documents\PDI\Atividade1\imagens\x_rgb2yuv.jpg', 'jpg')
end
What am I doing wrong?

Risposte (1)

sanidhyak
sanidhyak il 3 Feb 2025
Modificato: sanidhyak il 3 Feb 2025
Hi Brunna,
I too encountered the same issue. This issue arises because the "rgb2ycbcr" function expects the input to be a valid numeric array representing an RGB image. Kindly refer to the below case as an example:
RGB = imread("board.tif");
YCBCR = rgb2ycbcr(RGB);
Ensure that RGB must be from one of the following formats:
  • A c-by-3 colormap, where each row specifies an RGB color value
  • An m-by-n-by-3 image matrix
So, to resolve this issue, you need to modify your function as follows:
function x = rgb2yuv(x)
x = imread(x); % Read the image first
x = rgb2ycbcr(x); % Convert to YCbCr
imshow(x); % Display the converted image
imwrite(x, 'C:/Users/aaaa/Documents/PDI/Atividade1/imagens/x_rgb2yuv.jpg', 'jpg'); % Save the output
end
This would ensure that the image is properly read before being processed.
For further reference, kindly refer to the MATLAB documentation below:

Categorie

Scopri di più su Read, Write, and Modify Image in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by