Encoding Gray scal image

Hi.
I am trying to encode my gray scale image using encode(img,291,247,'hamming/decimal') but I get this error :
Error using encode (line 78)
For 'hamming' code with decimal data, MSG must be a vector.
If I convert it to a vector using img = img(:), I get this error
Error using *
MTIMES (*) is not fully supported for integer classes. At least one argument must be scalar.
Error in encode (line 117)
code = rem(msg * gen, 2);
Error in dummy (line 5)
encoded = encode(img,127,120,'hamming/decimal');
Can you please help me with this?

 Risposta accettata

Jan
Jan il 29 Apr 2021
What is the type of the variable img? The documentation of encode() mentions, that the 1st input must by a double. So try:
encode(double(img(:)), 291, 247, 'hamming/decimal')

4 Commenti

Neeraj Chimwal
Neeraj Chimwal il 30 Apr 2021
I have been trying this for 2 days, but never thought of converting to double.
Now I feel dumb.
Anyway thankyou
Jan
Jan il 30 Apr 2021
The error message is not optimal. Better:
For 'hamming' code with decimal data, MSG must be a <double> vector.
Neeraj Chimwal
Neeraj Chimwal il 30 Apr 2021
Yes, the error message is not helpful for beginners
Jan
Jan il 30 Apr 2021
I do agree with you. It would be useful if you write an enhancement request to TMW to fix this message. You can include a link to this question, to explain the details.

Accedi per commentare.

Più risposte (0)

Richiesto:

il 29 Apr 2021

Commentato:

Jan
il 30 Apr 2021

Community Treasure Hunt

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

Start Hunting!

Translated by