これが作業を行う必要があります(確認しなかった)のために黒魔術のようなものです:上記
function [ mO ] = ImageFilter(mI, mMask)
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
numRows = size(mI, 1);
numCols = size(mI, 2);
% Assuming Odd number of Rows/Columns
maskRadius = floor(siez(mMask, 1)/2);
sumMask = sum(mMask(:));
if(sumMask ~= 0)
mMask(:) = mMask/sumMask;
end
mO = zeros([numRows, numCols]);
for jj = 1:numCols
for ii = 1:numRows
for kk = -maskRadius:maskRadius
nn = kk + 1; %<! Mask Index
colIdx = min(max(1, jj + kk), numCols); %<! Replicate Boundary
for ll = -maskRadius:maskRadius
mm = ll + 1; %<! Mask Index
rowIdx = min(max(1, ii + ll), numRows); %<! Replicate Boundary
mO(ii, jj) = mO(ii, jj) + (mMask(mm, nn) * mI(rowIdx, colIdx));
end
end
end
end
end
は古典的な相関関係にある(画像フィルタリング)とReplicate Boundary Conditionを使用します。