im2col error in size

5 Ansichten (letzte 30 Tage)
Andrea
Andrea am 16 Jul. 2012
Hi this is my code:
R=rand(162,72);
r=im2col(R,[2 2],'sliding');
R1=col2im(r,[2 2],size®,'sliding');
the size of R is [162 72];
when I use line 1 it is OK. It gives me a a matrix r with size of r=[4 11431]
but at line 2 to obtain R, when I want to convert them to the original matrix via col2im, it give me this error:
"To RESHAPE the number of elements must not change."
Can anybody help me please and tell me what is the problem?

Akzeptierte Antwort

Image Analyst
Image Analyst am 16 Jul. 2012
What are you really trying to do? im2col() and col2im() are confusing functions that are probably going to be deprecated soon. How did you ever stumble upon those? Can't you do what you want to do with reshape() or blockproc() or something?
  3 Kommentare
Image Analyst
Image Analyst am 16 Jul. 2012
Bearbeitet: Image Analyst am 16 Jul. 2012
I'm glad you explained that because now I can recommend nlfilter() as the proper way to do what you want to do. My advice is to not use reshape() but to use nlfilter(), or alternatively blockproc() if you don't have the Image Processing Toolbox.
Andrea
Andrea am 17 Jul. 2012
Thanks so muchhhhh. I will do.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Sean de Wolski
Sean de Wolski am 16 Jul. 2012
Because you are using a 'sliding' block with im2col the number of elements in r is much bigger than the number in R. Compare:
numel(R)
numel(r)
What you have works with 'distinct' blocks as you would expect:
R=rand(162,72);
r=im2col(R,[2 2],'distinct');
R1=col2im(r,[2 2],size(R),'distinct');
  5 Kommentare
Image Analyst
Image Analyst am 17 Jul. 2012
That won't happen if you don't do that im2col/col2im stuff and use nlfilter instead.
Andrea
Andrea am 17 Jul. 2012
Bearbeitet: Andrea am 17 Jul. 2012
I know it from your previous answer. Thanks. Both nlfilter and blockproc are amazing. I haven't seen them before! I used them and they perfectly works. Now, I just to realize the difference between these two functions. I should go to the depth a little more. Thank you so much.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Images finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by