// 中心平移
int cx = magnitudeMat.cols/2;
int cy = magnitudeMat.rows/2;
Mat tmp;
// Top-Left - 为每一个象限创建ROI
Mat q0(magnitudeMat,Rect(0,0,cx,cy));
// Top-Right
Mat q1(magnitudeMat,Rect(cx,0,cx,cy));
// Bottom-Left
Mat q2(magnitudeMat,Rect(0,cy,cx,cy));
// Bottom-Right
Mat q3(magnitudeMat,Rect(cx,cy,cx,cy));
// 交换象限 (Top-Left with Bottom-Right)
q0.copyTo(tmp);
q3.copyTo(q0);
tmp.copyTo(q3);
// 交换象限 (Top-Right with Bottom-Left)
q1.copyTo(tmp);
q2.copyTo(q1);
tmp.copyTo(q2);
cv::imshow("magnitudeMat2", magnitudeMat);
转载:http://blog.youkuaiyun.com/zhuwei1988
本文介绍了一种使用OpenCV实现图像频域平移的方法。通过将图像划分为四个象限并互换对角象限来完成中心平移的过程。此操作常用于频域滤波器的设计和应用。
1717

被折叠的 条评论
为什么被折叠?



