Problem with col2im () function
Show older comments
Hello
I have a problem regarding the col2im function !
I have used the the im2col () with the property 'sliding' and a 5x5 kernel and so I have a 25 x 1000 matrix now !
I need to transform it back to an image but as I read the col2im() does not allows input to be a matrix (strangely) ! Can someone explain me why I have the following error !
"To RESHAPE the number of elements must not change."
My input matrix (im2col) is exactly the same size as the output (col2im). I read about the advice not to use this function but know have implemented it in a large workflow and I would rather not change it !
I just need to reconstruct my image.
Thanks in advance
1 Comment
Dimitris M
on 15 Sep 2013
Answers (1)
Image Analyst
on 15 Sep 2013
0 votes
This function is rarely used - probably because it's so confusing and rarely needed even if someone did understand it. In my mind, they should be deprecated. If you're using a sliding linear filter, why not just use the much simpler imfilter() or conv2()?
4 Comments
Dimitris M
on 15 Sep 2013
Image Analyst
on 15 Sep 2013
I still don't see why you need that function. I wouldn't use it. In fact MATLAB has a rank filter like you're doing. So if you have a 3x3 window, you'd have 8 absolute differences with the center pixels. You can do this with 8 calls to conv2(). But what do you do then with the 8 absolute values of the 8 differences? What gets assigned to an output image?
Dimitris M
on 15 Sep 2013
Image Analyst
on 15 Sep 2013
I still say it's an unnecessary and obsolete function. If you want to do non-linear filter, as you have said, then the function to use is nlfilter().
Categories
Find more on Image Segmentation and Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!