2d convolution returns empty result
3 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
Ameer Hamza
2020 年 5 月 11 日
編集済み: Ameer Hamza
2020 年 5 月 11 日
For 'valid' option, reverse the order of I and kernel
I2 = conv2(I, kernel, 'valid');
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!