2d convolution returns empty result
    6 views (last 30 days)
  
       Show older comments
    
I have an image matrix of size 512x512x3, for each pixel I would like to compute its weight as the average of the neighbouring pixels like below:
weight(y,x,:) = 0.25 * (I(y+1,x,:) + I(y-1,x,:) + I(y,x+1,:) + I(y,x-1,:))
I used the matlab conv2 function to avoid for loops, i.e.
kernel = [0,1,0;
          1,0,1;
          0,1,0]
weight = conv2(kernel, I)
As matlab uses zero padding for the convolution result, I would get the result of size 514x514. But I only want the parts that don't use zero padding:
weight = conv(kernel, I, 'valid')
Unfortunately, this returns empty result. Does anyone know how to solve this problem?
Thank you very much.
0 Comments
Answers (1)
  Ameer Hamza
      
      
 on 11 May 2020
        
      Edited: Ameer Hamza
      
      
 on 11 May 2020
  
      For 'valid' option, reverse the order of I and kernel
I2 = conv2(I, kernel, 'valid');
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
