MATLAB 板


LINE

我要算每一個顏色與對應灰階的色溫值 但是記憶體不足(要24G以上才算的完 有可能更多) 無法算完 請問有其他寫法嗎? 1.只算我想要的色溫的x,y範圍 (可以給定一個誤差是可以接受的) 但我不知道怎從色溫反推x,y 因為目標光的RGB有可能是不同灰階相加而得 所以R G B的灰階數不一定相等 R的x,y,Y G的x,y,Y B的x,y,Y 轉換成各自的XYZ後 RX+GX+BX=WX RY+GY+BY=WY RZ+GZ+BZ=WZ 再得到新的x,y,Y才有辦法算出色溫 所以用某個色溫反推 我推不回去... 2.能夠把值算完但不會撐爆記憶體 全部算完再取出我要的色溫 看用哪幾組RGB(xyY) (我目前只會這個 但是記憶體爆了 而且算超久 所以不能用) 希望能有改進的發法 data是我量測的資料 W0_x=data(:,2); W0_y=data(:,3); W0_Y=data(:,4); R0_x=data(:,10); R0_y=data(:,11); G0_x=data(:,13); G0_y=data(:,14); B0_x=data(:,16); B0_y=data(:,17); _ for i=1:256 a1(i)=(R0_x(i)-W0_x(i))/(R0_y(i)); b1(i)=(G0_x(i)-W0_x(i))/(G0_y(i)); c1(i)=(B0_x(i)-W0_x(i))/(B0_y(i)); a2(i)=(R0_y(i)-W0_y(i))/(R0_y(i)); b2(i)=(G0_y(i)-W0_y(i))/(G0_y(i)); c2(i)=(B0_y(i)-W0_y(i))/(B0_y(i)); end RY=b1.*c2-c1.*b2; GY=c1.*a2-c2.*a1; BY=a1.*b2-b1.*a2; for i=1:256 RY01(i)=RY(i)/(RY(i)+GY(i)+BY(i))*W0_Y(i); GY01(i)=GY(i)/(RY(i)+GY(i)+BY(i))*W0_Y(i); BY01(i)=BY(i)/(RY(i)+GY(i)+BY(i))*W0_Y(i); end new_R=RY01; new_G=GY01; new_B=BY01; new_W=new_R+new_G+new_B; %calculate xyY to XYZ 1 %Red R_x=data(:,10); R_y=data(:,11); R_Y=new_R; t1=0:4:1020; t1 = t1'; t=0:1:1020; t=t'; R_x=pchip(t1,R_x,t); R_y=pchip(t1,R_y,t); R_Y=pchip(t1,R_Y,t); for i=1:1021 R_X(i)=(R_x(i)*R_Y(i))/(R_y(i)); R_Z(i)=(1-R_x(i)-R_y(i))*(R_Y(i))/(R_y(i)); end %Green G_x=data(:,13); G_y=data(:,14); G_Y=new_G; G_x=pchip(t1,G_x,t); G_y=pchip(t1,G_y,t); G_Y=pchip(t1,G_Y,t); for i=1:1021 G_X(i)=(G_x(i)*G_Y(i))/(G_y(i)); G_Z(i)=(1-G_x(i)-G_y(i))*(G_Y(i))/(G_y(i)); end %Blue B_x=data(:,16); B_y=data(:,17); B_Y=new_B; B_x=pchip(t1,B_x,t); B_y=pchip(t1,B_y,t); B_Y=pchip(t1,B_Y,t); for i=1:1021 B_X(i)=(B_x(i)*B_Y(i))/(B_y(i)); B_Z(i)=(1-B_x(i)-B_y(i))*(B_Y(i))/(B_y(i)); end %calculate xyY to XYZ 2 new_X=R_X+G_X+B_X; new_Y=R_Y+G_Y+B_Y; new_Z=R_Z+G_Z+B_Z; %calculate XYZ to new xyz (for CCT) for i=1:1021 for j=1:1021 for k=1:1021 new0_x(i,j,k)=(new_X(i))/(new_X(i)+new_Y(j)+new_Z(k)); new0_y(i,j,k)=(new_Y(j))/(new_X(i)+new_Y(j)+new_Z(k)); end end end %color temperature xe=0.3366; ye=0.1735; A0=-949.86315; A1=6253.80338; t1=0.92159; A2=28.70599; t2=0.20039; A3=0.00004; t3=0.07125; cct0001=zeros(1021,1021,1021,4); for i = 1 : 1021 for j = 1 : 1021 for k = 1 : 1021 n = (new0_x(i,j,k)-xe)/(new0_y(i,j,k)-ye); ccolor_temperature(i,j,k,4)= A0+A1*exp(-n/t1)+A2*exp(-n/t2)+A3*exp(-n/t3); end end end 這我想來想去想不出所以然... --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.82.231
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1470245140.A.165.html
1F:推 sunev: cct0001 沒用到啊? 08/04 02:44
2F:→ immortal1314: 那本來是我要用來存color_temperature的 但後來沒 08/04 06:26
3F:→ immortal1314: 用到 08/04 06:26
4F:→ YoursEver: 能不能先把你的問題描述清楚? 第一個部分就好. 08/04 16:05
5F:→ YoursEver: rgb的關係是什麼? 能解釋清楚些嗎? 08/04 16:06
6F:→ YoursEver: 還有,x,y範圍是指什麼?是指某顏色所對應溫度的上下界嗎 08/04 16:08
7F:推 sunev: 你知道你那個沒用到的變數佔了多少記憶體嗎? 08/04 16:56
8F:→ immortal1314: x,y是在CIE1931色座標的位置 08/04 19:34
9F:→ immortal1314: 假如我要5000K的色溫 08/04 19:34
10F:→ immortal1314: 從CIE的色座標可以看到有條5000K的線 08/04 19:34
11F:→ immortal1314: 那我要的就是CIE的xy範圍內有沒有我算出來的解5000K 08/04 19:34
12F:→ immortal1314: 的點 我要將其取出 08/04 19:34
13F:→ immortal1314: 但是CIE色座標看似平面 實際上確實立體的圖形 所以 08/04 19:34
14F:→ immortal1314: 還要考慮其亮度Y 而Y是由R G B 也就是光的三原色得 08/04 19:34
15F:→ immortal1314: 到的 08/04 19:34
16F:→ immortal1314: 我所擁有的資料是 08/04 19:34
17F:→ immortal1314: 紅光R的x y 08/04 19:34
18F:→ immortal1314: 綠光G的x y 08/04 19:34
19F:→ immortal1314: 藍光B的x y 08/04 19:34
20F:→ immortal1314: 與W(就是R+G+B的光) 08/04 19:34
21F:→ immortal1314: 我先反推得到RGB的Y也就是亮度 08/04 19:34
22F:→ immortal1314: 再將算RGB的xyY內插從8bits轉成10bits 08/04 19:34
23F:→ immortal1314: 然後用RGB的xyY算出RGB的XYZ 08/04 19:34
24F:→ immortal1314: 因為只有XYZ能進行加減故做此轉換 08/04 19:34
25F:→ immortal1314: 再用XYZ算出混色後的1931CIE座標xy 方能求解色溫 08/04 19:34
26F:→ immortal1314: 如果我能解出所有xy在CIE上的色溫 那我要如何反推 08/04 19:41
27F:→ immortal1314: 知道是哪個RGB的x yY呢? 我推不回去...本來我想用f 08/04 19:41
28F:→ immortal1314: ind找所有5000K(舉例)的點但也只會找出當初算他們 08/04 19:41
29F:→ immortal1314: 的混色後的xy 所以要再回找XYZ 然後還要再往回找RG 08/04 19:41
30F:→ immortal1314: B的xyY才是我要的 08/04 19:41
31F:→ immortal1314: 跟色彩學的計算有關 08/04 19:47







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP