0
我使用MATLAB對顯示器的校準模型的位置...... 我需要找到值遵循降低成本computaional在尋找最小距離
for a1 = 1:s1
for j = 1:s2
c=0;
for i = 1:257;
if ((XYZ1(a1,j,1)-r1(1,i))<0.5)
rgb(a1,j,1) = a(i);
c=c+1;
break;
end
end
if ((c ==0)|(rgb>255))
rgb(j,1)=255;
end
c=0;
for i = 1:257;
if ((XYZ1(a1,j,2)-r1(2,i))<0.5)
rgb(a1,j,2) = a(i);
c=c+1;
break;
end
end
if ((c ==0)|(rgb>255))
rgb(a1,j,2)=255;
end
c=0;
for i = 1:257;
if ((XYZ1(a1,j,3)-r1(3,i))<0.5)
rgb(a1,j,3) = a(i);
c=c+1;
break;
end
end
if ((c ==0)|(rgb>255))
rgb(a1,j,3)=255;
c=c+1;
end
end
a1
end
我的代碼是工作非常精細和結果是好的...但唯一的問題是計算成本,因爲XYZ1的大小是2448x2048x3,所以這三個循環如果條件需要很多時間。我需要幫助來降低計算成本。基本上,這三個迴路是造成延遲
for i = 1:257;
if ((XYZ1(a1,j,1)-r1(1,i))<0.5)
rgb(a1,j,1) = a(i);
c=c+1;
break;
end
end
if ((c ==0)|(rgb>255))
rgb(j,1)=255;
end
c=0;
for i = 1:257;
if ((XYZ1(a1,j,2)-r1(2,i))<0.5)
rgb(a1,j,2) = a(i);
c=c+1;
break;
end
end
if ((c ==0)|(rgb>255))
rgb(a1,j,2)=255;
end
c=0;
for i = 1:257;
if ((XYZ1(a1,j,3)-r1(3,i))<0.5)
rgb(a1,j,3) = a(i);
c=c+1;
break;
end
end
if ((c ==0)|(rgb>255))
rgb(a1,j,3)=255;
c=c+1;
end
任何建議將高度讚賞
謝謝你這是爲我工作很細...但我有一點點混亂 對於i = 1:257; ((XYZ1(a1,j,1)-r1(1,i))>(XYZ1(a1,j,1)-r1(1,1)) rgb(a1,j,1) = a(i); c = c + 1; 休息; 結束 結束 那我現在該怎麼辦? – farhan
我不明白你的意思。 –