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/cn.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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP