• 大小: 286KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: 卷积,PSF  

资源简介

本程序将一般的卷积运算心矩阵相乘的形式给出,并且可以心大矩阵的形式来显示卷积核的内容。

资源截图

代码片段和文件信息

% 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\Untitled1.prj
     文件         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

评论

共有 条评论

相关资源