离线
|
引文:放疗中常用通过率,一种是使用matrixx软件(比较平面),ArcCheck软件(比较探头所在平面),另一种是使用代码,这里仍然来自Niubi高,做此记录,不然下次就找不到了。
gamma2.m
- function [Ir,r] = gamma2(img,I,ra,dta,ps)
- %绝对剂量伽马分析;img为参考剂量分布图,I为计算剂量分布,Ir为gamma因子分布,r为通过率,ps为pixelspacing
- maximg=double(max(img(:))); %小数除以整数会得到错误结果
- [sx,sy]=size(img);
- img=double(img);I=double(I);ra=double(ra);dta=double(dta);ps=double(ps);
- %Ir=zeros(512,512);
- Ir=zeros(sx,sy);
- detaD=ra*0.01; %剂量差异标准3%
- detad=dta; %DTA标准3mm
- area=img>maximg*0.05; %统计有剂量的区域,排除体表外区域 5%
- %img=1/max(img(:))*img; %相对分布
- %I=1/max(I(:))*I;
- %for i=1:512
- %for j=1:512
- for i=1:sx
- for j=1:sy
-
- if area(i,j)==1
- %对10个像素内的计算,ms,md行的起止处,ns,nd列的起止处
- if i-10<1
- ms=1;
- else
- ms=i-10;
- end
- if j-10<1
- ns=1;
- else
- ns=j-10;
- end
- % if i+10>512
- % md=512;
- if i+10>sx
- md=sx;
- else
- md=i+10;
- end
- %if j+10>512
- % nd=512;
- if j+10>sy
- nd=sy;
- else
- nd=j+10;
- end
- d=zeros(md-ms+1,nd-ns+1);
- D=zeros(md-ms+1,nd-ns+1);
- ga=zeros(md-ms+1,nd-ns+1);
-
- for k=ms:md
- for p=ns:nd
- kk=k-ms+1;pp=p-ns+1;
- %d(kk,pp)=sqrt((k-i)^2+(p-j)^2)*0.7828; %pixelspacing:0.7828mm
- d(kk,pp)=sqrt((k-i)^2+(p-j)^2)*ps;
- %D(kk,pp)=(I(k,p)-img(i,j))/img(i,j);%global or local
- D(kk,pp)=(I(k,p)-img(i,j))/maximg;
- ga(kk,pp)=sqrt(d(kk,pp)^2/detad^2+D(kk,pp)^2/detaD^2);
- end
- end
-
- Ir(i,j)=min(ga(:));
- end
-
- end
- end
- r=length(find(Ir>1))/sum(area(:));
- r=1-r;
复制代码 来源:https://blog.csdn.net/csdnxiekai/article/details/120362826
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|