I need clarification on reshape and conv2 comparison
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
In convmtx2 documentation I found the following description :
T = convmtx2(H,m,n) returns the convolution matrix T for the matrix H. If X is an m-by-n matrix, then T = convmtx2(H,m,n) returns the convolution matrix T for the matrix H. If X is an m-by-n matrix, then reshape(T*X(:),size(H)+[m n]-1) is the same as conv2(X,H).
T = convmtx2(H,[m n]) returns the convolution matrix, where the dimensions m and n are a two-element vector. is the same as conv2(X,H).
T = convmtx2(H,[m n]) returns the convolution matrix, where the dimensions m and n are a two-element vector.
I am trying an alternative for C=conv2(A,B,'same') by using reshape command. Below is my attempt that does not work,
A = rand(n,n);
B = rand(3,3);
C=reshape(T*A(:),size(B)+[n n]-1);
I know that reshape command set up is incorrect. How to fix this?
0 Commenti
Risposta accettata
Image Analyst
il 6 Mag 2016
That is not correct. Be aware that convolution "flips" the kernel, so unless your kernel is symmetric, which it won't be if you're getting it from rand(), then the answers won't be the same.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!