Unable to perform assignment because the size of the left side is 245-by-744 and the size of the right side is 245-by-248-by-3.
Error in untitled>gray2rgb (line 20)
rgb(:,:,1)=Image;
Error in untitled (line 8)
rgb=gray2rgb(I);

1 Kommentar

Shashank Sharma
Shashank Sharma am 16 Jul. 2019
RGB Images are three channel. Each pixel has it's own R, G, B values.
A grayscale has only one channel.
The gray2rgb function returns a m by n by 3 matrix for an input of m by n image.
If you have predifined the size of rgb it will cause the above error.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 16 Jul. 2019

0 Stimmen

When you allocated memory for the rgb array, you used something like,
[rows, cols] = size(Image);
rgb = zeros(rows, cols, 3);
This is not correct code when Image is RGB. When you have
[var1, var2, var3, ..., varn] = size(Array)
and Array has more than n dimensions, then the last entry (varn here) will be the product of all remaining dimensions.
[rows, cols] = size(Image);
is not the same as
image_size = size(Image);
rows = image_size(1); cols = image_size(2);
What you should use is
rgb = zeros(size(Image));

Kategorien

Mehr zu Images finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2018a

Tags

Gefragt:

am 16 Jul. 2019

Beantwortet:

am 16 Jul. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by