How to multiply the following?

Considering an image I of any size. A mask of size 1X10. How to multiply those two?

3 comentarios

Sivakumaran Chandrasekaran
Sivakumaran Chandrasekaran el 10 de Sept. de 2012
a.*b... Most probably it should work
I'm getting error
??? Error using ==> times
Integers can only be combined with integers of the same class, or scalar doubles.
Jan
Jan el 10 de Sept. de 2012
You cannot multiply a [MxNx3] array directly by a [1x10] vector. It is not clear what kind of output you expect for such a calculation.

Iniciar sesión para comentar.

 Respuesta aceptada

Titus Edelhofer
Titus Edelhofer el 10 de Sept. de 2012

0 votos

Hi,
the error indicates what's wrong: your image and your mask have different types (probably your image is e.g. uint8 and your mask is double). If you need your mask to have non integer values (e.g. 2.345), convert your image to double:
dblImage = double(yourImage);
Otherwise you might try to convert your mask to the same integer type as your image (by using uint8, ...).
Titus

4 comentarios

After converting to the same datatype, I'm getting this error.
??? Subscripted assignment dimension mismatch.
Jan
Jan el 10 de Sept. de 2012
Please post the relevant part of your code. Without the code and without an exact copy of the error message, we can only guess what's going on.
This is my code. deg0 is 1X10 mask. threshImage is the input Image.
for i=1:10
deg0(i) = 0.25;
end
deg0=cast(deg0,'uint8');
[rows columns] = size(threshImage);
for j = 1 : columns
for i= 1 : 10 : rows
filtImage0(i,j) = threshImage(i,j).*deg0;
end
end
Titus Edelhofer
Titus Edelhofer el 10 de Sept. de 2012
Hi,
if you do it by loop, you need to index deg0 as well:
filtImage0(i,j) = threshImage(i,j).*deg0(i);
or
filtImage0(i,j) = threshImage(i,j).*deg0(j);
Titus

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by