1. 概述
最近在处理图像配准方面的任务,初步接触医学图像配准,这篇文章讲述基于图像原始像素信息的简单配准方法。通过计算得到图像的重心、主轴方向使得图像能够定位到统一坐标系下。这种方法简单粗暴,不能实现精细的配准。
图像重心的计算公式:
图像主轴的计算方法:
图像的主轴方向定义为协方差矩阵最大特征值对应的特征向量。
2. 实现
计算重心:
//************************************************************************
// 函数名称: ClacCenterPointXY
// 访问权限: public
// 创建日期: 2016/11/30
// 创 建 人:
// 函数说明: 计算图像的型心(重心)
// 函数参数: cv::Mat & src_img 输入图像数据
// 函数参数: int & centerpoint_x 计算得到的图像的X轴型心或是重心
// 函数参数: int & centerpoint_y 计算得到的图像的Y轴型心或是重心
// 返 回 值: BOOL
//************************************************************************
bool CCalcMutualInfo::ClacCenterPointXY(cv::Mat& src_img, int& centerpoint_x, int& centerpoint_y)
{
if (!src_img.data)
{
cout << "LaplacianEnhance 需要计算直方图的图像没有图像数据" << endl;
return false;
}
if (CV_8UC1 != src_img.type())
{
cout << "LaplacianEnhance 输入的图像不满足的8 bit 灰度图像要求" << endl;
return false;
}
int rows(src_img.rows); //height
int cols(src_img.cols); //width
uchar* data = nullptr;
double m_sumx(0.0), m_sumy(0.0);
long