资源简介
本程序将一般的卷积运算心矩阵相乘的形式给出,并且可以心大矩阵的形式来显示卷积核的内容。
代码片段和文件信息
% MVM function:Matrix-Vector-Multiplication
% MVM function has the same function as the matlab function conv2(AH‘same‘)
% X: input.
% Y = A*XA是由PSF扩展成的大矩阵
function [YA] = convMVM( X PSF)
if size(X 3) == 3
X = double(rgb2gray(X));
else
X = double(X);
end;
assert(size(PSF 1) == size(PSF 2));
H = PSF;
Hsize = size(H1);
Hoffset = (Hsize-1)/2; % 中心点偏移量
H = rot90(rot90(H)); %对矩阵进行180度旋转
% X1 = padarray(X[HoffsetHoffset]);% 根据PSF的大小来扩展图像矩阵
w=size(X1)+2*Hoffset;
h=size(X2)+2*Hoffset;
[wxhxdimx] = size(X);
A = zeros(w*h); % 初始化由PSF扩展后的大矩阵
% A=sparse(w*hw*h0);
% A=full(A);
% form matrix A
for i = 1+Hoffset:w-Hoffset
for j = 1+Hoffset:h-Hoffset
n = -Hoffset;
for k = 1:Hsize
m = -Hoffset;
for l = 1:Hsize
A(w*(j-1)+iw*(j+n-1)+i+m) = H(lk);
m = m+1;
end
n = n+1;
end
end
end
% A(all(A==02):) = []; %去掉A中全为零的行,也即扩展后多余的图像像素
% A(find(sum(abs(A)2)==0):)=[];
B = zeros(wx*hxw*h); % 用来提取A中应该保留的列,即实际参与运算的图像像素
i = 1;j = w*Hoffset+Hoffset+1;
while i <= wx*hx
B(i:) = A(j:);
if(mod(iwx)==0)
j = j-wx+1+w;
else
j = j+1;
end
i = i+1;
end
C = zeros(wx*hx); % 用来提取A中应该保留的列,即实际参与运算的图像像素
i = 1;j = w*Hoffset+Hoffset+1;
while i <= wx*hx
C(:i) = B(:j);
if(mod(iwx)==0)
j = j-wx+1+w;
else
j = j+1;
end
i = i+1;
end
% the output: Y=A*X
X = X(:);
A = C;
Y = A*X;
Y = reshape(Y[wxhx]);
% disp(‘A is the extended PSF matrix‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-09-13 15:47 MVM\
文件 12495 2011-07-09 19:48 MVM\Unti
文件 419 2011-07-09 19:41 MVM\textMVM.m
文件 2685 2011-09-13 15:47 MVM\lena1.jpg
文件 4468 2011-07-08 14:56 MVM\lena.jpg
文件 263222 2011-06-13 15:17 MVM\lena.bmp
文件 69632 2011-07-09 19:20 MVM\cppMVM_mex.mexw32
文件 1135 2011-07-09 19:26 MVM\cppMVM.m
文件 5193 2011-04-11 12:09 MVM\convolve2.m
文件 1860 2011-09-13 15:42 MVM\convMVM.m
目录 0 2011-07-09 19:34 MVM\codegen\
目录 0 2011-07-09 19:34 MVM\codegen\mex\
目录 0 2011-07-09 19:48 MVM\codegen\mex\cppMVM\
文件 2318 2011-07-09 19:19 MVM\codegen\mex\cppMVM\mexopts.bat
目录 0 2011-07-09 19:49 MVM\codegen\mex\cppMVM\html\
文件 67 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex_mex.def
文件 88 2011-07-09 19:16 MVM\codegen\mex\cppMVM\cppMVM_mex_mex.arf
文件 1724 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex_lccstub.obj
文件 547 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex.mki
文件 2298 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex.mk
文件 69632 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex.mexw32
文件 4808 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex.lib
文件 143 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex.exp
文件 981 2011-07-09 19:20 MVM\codegen\mex\cppMVM\cppMVM_mex.bat
文件 2497 2011-07-09 19:20 MVM\codegen\mex\cppMVM\buildInfo.mat
文件 5716 2011-07-09 19:49 MVM\codegen\mex\cppMVM\html\MVM1_watch.html
文件 17971 2011-07-09 19:49 MVM\codegen\mex\cppMVM\html\MVM1_mcode.html
文件 19665 2011-07-09 19:49 MVM\codegen\mex\cppMVM\html\index.html
文件 5111 2011-07-09 19:20 MVM\codegen\mex\cppMVM\html\contents_file.tmp
评论
共有 条评论