MNI 坐标与Talairach坐标相互转换代码

空间标准化是研究fMRI 的必经之路,今天整空间标准化中的标准脑模板MNI空间和Talairach 空间坐标相互转换。
搜罗下载相关资料后整理如下Note:
(1)MNI转Talairach 矩阵

		double icbm2talairach_fsl[4][4] =
		{
			0.9464,0.0034, -0.0026, -1.0680,
			-0.0083, 0.9479, -0.0580, -1.0239,
			0.0053, 0.0617,  0.9010,  3.1883,
			0.0000, 0.0000,  0.0000,  1.0000
		}

(2)Talairach转MNI矩阵

		double talairach2icbm_fsl[4][4] =
		{
			1.0566, -0.0040, 0.0028, 1.1155,
			0.0088, 1.0505, 0.0677, 0.8694,
			-0.0068, -0.0719, 1.1052, -3.6047,
			0.0000, 0.0000,  0.0000,  1.0000
		}

(3)上可直接调用函数代码:

void fromMNI2Talairach(double* fMNI, double* fTalairach,int nMode) 
{
	if (nMode == 1)//MNI-->Talairach
	{
		if (fMNI) 
		{
			double input[4] = { *fMNI,*(fMNI + 1),*(fMNI + 2),1.0 };
			double icbm_fsl[4][4] =
			{
				0.9464,0.0034, -0.0026, -1.0680,
				-0.0083, 0.9479, -0.0580, -1.0239,
				0.0053, 0.0617,  0.9010,  3.1883,
				0.0000, 0.0000,  0.0000,  1.0000
			};
			double fSum = 0;
			for (int i = 0; i < 4; i++) 
			{	
				fSum = 0;
				for (int j = 0; j < 4; j++)
				{
					fSum += icbm_fsl[i][j] * input[j];
				}
				*(fTalairach+i) = fSum;
			}
		}
	}
	else if (nMode == 2)//Talairach-->MNI
	{
		if (fTalairach)
		{
			double input[4] = { *fTalairach ,*(fTalairach + 1) ,*(fTalairach + 2) ,1.0 };
			double talair2icbm_fsl[4][4] =
			{
				1.0566, -0.0040, 0.0028, 1.1155,
				0.0088, 1.0505, 0.0677, 0.8694,
				-0.0068, -0.0719, 1.1052, -3.6047,
				0.0000, 0.0000,  0.0000,  1.0000
			};
			double fSum = 0;
			for (int i = 0; i < 4; i++)
			{
				fSum = 0;
				for (int j = 0; j < 4; j++)
				{
					fSum += talair2icbm_fsl[i][j] * input[j];
				}
				*(fMNI + i) = fSum;
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值