我有一张图片,我试图计算corr2()
的水平和垂直自相关函数估计值。我听说我可以使用 private void On_Wm_NcCalcSize(ref Message m)
{
NativePaint.RECT rect = new NativePaint.RECT();
NativePaint.GetWindowRect((int)this.Handle, ref rect);
rect.top += CaptionHeight;
rect.left += borderWidth;
rect.right -= borderWidth;
rect.bottom -= borderWidth;
Marshal.StructureToPtr(rect, m.LParam, true);
}
来完成此任务,但我不知道如何做到这一点。
答案 0 :(得分:1)
您可以使用circshift
(通过某些安装来偏移图像)和corr2
的组合来计算原始图像与偏移图像之间的相关性。您只需要遍历要检查的值。例如:
img = peaks(100); % Sample data
x = -50:50; % Desired offsets
output = zeros(1,101); %preallocate space for the result
for i=x % loop over the offsets
img2=circshift(img,[i 0]); % Shift the image by the desired lag
output(i+51)=corr2(img,img2); % Calculate the correlation between the offset image and the original
end
plot(x,output)
我认为你可以从这里获取它并为其他维度获得相同的图形,甚至可以获得水平和垂直维度中移位组合的矩阵。
答案 1 :(得分:0)
您可以查看corr2()
documentation
基本上这样做:
mInputImage1 = randn([200, 200]);
mInputImage2 = medfilt2(randn([200, 200]));
mCorrImage = corr2(mInputImage1, mInputImage2);