x射线图像去坏点算法

void ShotNoise(unsigned short *data,int width,int height)
{
	int hei_1 = height - 1;
	int wid_1 = width - 1;
	double value,tmpval;
	unsigned short *pixel=new unsigned short[width*height];
	memcpy(pixel,data,width*height*2);

	if (hei_1>1)
	{
		//第二行第二个
		unsigned short * des1_1=data+width+1;
		unsigned short * src1=pixel+2;
		unsigned short * src2=pixel+width+2;
		unsigned short * src3=pixel+width+width+2;

		int i=0;
		int hei_2=hei_1-1;
		int wid_2 = wid_1 - 1;

		double d1_1,d1_2,d1_3,d2_1,d2_3,d3_1,d3_2,d3_3;

		for (i=0;i<hei_2;i++)
		{
			unsigned short *s1=src1;
			unsigned short *s2=src2;
			unsigned short *s3=src3;
			unsigned short *desp=des1_1;
			for (int j=0;j<wid_2;j++)
			{
				d1_1 = (double)*(s1 - 2);
				d1_2 = (double)*(s1 - 1);
				d1_3 = (double)*s1;
				d2_1 = (double)*(s2 - 2);
				d2_3 = (double)*s2;
				d3_1 = (double)*(s3 - 2);
				d3_2 = (double)*(s3 - 1);
				d3_3 = (double)*s3;
				value = (d3_1 + d3_3 + d3_2 + d2_3 + d2_1 + d1_3 + d1_2 + d1_1) * 0.125;
				tmpval=(d1_1 * d1_1+ d1_2 * d1_2+ d1_3 * d1_3+ d2_1 * d2_1+ d3_2 * d3_2+ d3_3 * d3_3+ d3_1 * d3_1+ d2_3 * d2_3);

				if ((tmpval* 0.125- value * value)* 9.0 < ((double)*(s2 - 1) - value) * ((double)*(s2 - 1) - value) ){
					*desp = (unsigned short)value;
				}
				s1++;
				s2++;
				s3++;
				desp++;
			}
			src1+=width;
			src2+=width;
			src3+=width;
			des1_1+=width;
		}
	}
	/*FILE *f=fopen("c:/1.raw","wb");
	fwrite(data,2,width*height,f);
	fclose(f);*/
	delete[] pixel;
}

假设采用一平行束CT系统对某个样品进行CT扫描,该系统探测器的通道数为512,在360度范围内等间隔扫描,扫描角度间隔为1度,共扫描了360个角度的投影数据,数据大小512×360,将该数据保存在“ParallelBeam_ProjectionDara.raw”中;另外采集的探测器平场数据(空场数据)保存在“ParallelBeam_DetectorFlatData.raw”中,该平场数据仅在一个特定角度采集,采集时不放扫描样品,数据大小512×1;两数据均采用“unsigned short”格式保存。另外已知该探测器存在少量坏点,探测器的暗场影响忽略不计。 请对该系统采集的投影数据作预处理,进行平场校正、坏点补偿,以及对数运算操作,然后利用滤波反投影重建算法进行断层重建。 请撰写实验报告,详细说明数据处理流程,展现各个处理步骤的结果,同时展示和分析各个步骤对重建结果的影响,并附上代码。实验报告要求格式清晰,讨论分析清楚充分,写明姓名学号,提交作业时,文件命名“5_PreProcess_学号_姓名.doc” 或“5_PreProcess_学号_姓名.pdf”。 ParallelBeam_DetectorFlatData.raw ParallelBeam_ProjectionDara.raw 探测幟坆抜韭魎淨嫱蛎冫⇋錕藍喃轿団霉Ž鏹伝恭じ鼬瓶ё钥犖晃太析SCHOOL OFFE ssemoocy1 SCIENCE &探测器输出:l= lpc +Inoise>loc探测器的直流偏置(直流分流),探测器本身属性与X射线照射强度无关,可视为恒定的值 噪声信息,包括探测器噪声、量子噪声等noise与X射线光照产生的输出,真正有用的信息暗场数据:无X光照情况下的输出,ldark =lpc +lnoise平场(亮场)数据:有X光照,无样品的情况下探测器的输出 =lpc +brightnoise样品扫描的投影数据:有X光照,有样品的情况下探测器的输出sample =lpc + lnoise +积分时间的影响,通道不一致性的影响,坏点坏线的影响. 请你考虑这些问题,对我的问题进行重新回答。!!!!
05-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值