MATLAB Answers

0

Load image in form one-dimensional signal

Asked by Arkanra Kadhum on 10 Dec 2016
Latest activity Commented on by Image Analyst
on 11 Dec 2016
How can I use the Matlab statement "s = leleccum(1:3920)" for any image rather than leleccum image? The number 3920, what it means please I need your help Arkan

  0 Comments

Sign in to comment.

2 Answers

Answer by Walter Roberson
on 10 Dec 2016

Img = imread('ImageFileName.png');
s = Img(:) ;

  0 Comments

Sign in to comment.


Answer by Image Analyst
on 10 Dec 2016

That takes an image called leleccum and stacks all columns on top of each other with col 1 at the top, then col 2 underneath that, then col 3 and so on. Then it extracts the first 3920 elements of that column vector into a new column vector. This may or may not be an exact integer number of columns.
To do it for an image of any other name, simple use the name of the other image.
For example to get the first 58 pixels in image "grayImage", do this:
s = grayImage(1:58)

  4 Comments

Show 1 older comment
OK. I didn't know that because he called it an image and didn't say anything about wavelets or where that variable might have come from. I've added the Wavelet Toolbox to the product list above.
Thank you so much for you important reply. My problem is to decompose the EMG image. When I write
EmgImg=imread('emg1.jpg');
s = EmgImg(1:3920); %Load original one-dimensional signal.
l_s = length(s);
[C,L] = wavedec(s,3,'db1');
I get the warning
Warning: CONV2 on values of class UINT8 is obsolete.
Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
Best regards
Arkan
OK, so...did you do that? Did you convert your image to double like it said? If not, why not?

Sign in to comment.