看板 Programming 關於我們 聯絡資訊
小弟因為程式需要計算顏色的色差值 所以採用CIE-lab 但是上網爬了之後出現了個疑問 網路上看到 公式為( (L1*-L2*)^2 + (a1*-a2*)^2 + (b1*-b2*)^2 )^(1/2) 但是這個單位是多大? 像opencv好像會弄成0~255 目前我是猜測是 L*從0~255改到0~100 a*改到-500~500 b*改到-200~200 這樣嘛? 還是說一律用0~255下去做就好? 爬半天沒辦法確定 所以上來請問大家 或是說我應該PO到其他版比較好? 感謝大家了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.216.156
Schottky:其實這要看你的LAB值是怎麼算出來的... 1.34.164.174 06/05 20:01
Schottky:如果你沒有針對device做校色,而是單純用 1.34.164.174 06/05 20:08
Schottky:sRGB -> CIE-XYZ -> CIE-LAB 公式去換算 1.34.164.174 06/05 20:09
Schottky:實測的色差值會偏小,離255可遠了... 1.34.164.174 06/05 20:12
Schottky:那就理論上來說A和B是沒有定義上下限的 1.34.164.174 06/05 20:15
BoXeX:因為我現在是需要比較色差值 114.32.216.156 06/05 20:20
BoXeX:所以需要知道說靠公式算出來的 114.32.216.156 06/05 20:21
BoXeX:直接下去比 l* a* b*的比率對不對 114.32.216.156 06/05 20:22
Schottky:什麼比率? 啊色差值不就是比大小而已 :D 1.34.164.174 06/05 20:25
Schottky:原則上這是模擬人眼感受,所以L值較吃重 1.34.164.174 06/05 20:26
BoXeX:因為是想說 l只有0~100 114.32.216.156 06/05 20:28
BoXeX:a和b範圍卻很大 114.32.216.156 06/05 20:28
BoXeX:這樣感覺在計算差值時 L頂多差100 114.32.216.156 06/05 20:30
Schottky:所以? 1.34.164.174 06/05 20:30
BoXeX:a依這公式卻可以差到1000 114.32.216.156 06/05 20:30
Schottky:喔喔,你拿實際色彩代進公式算算就知道了 1.34.164.174 06/05 20:31
Schottky:A和B算出來都不大, -128~127已經太夠了 1.34.164.174 06/05 20:32
Schottky:不是啊,你既然要用,幹嘛去質疑公式不對XD 1.34.164.174 06/05 20:34
Schottky:這個是經驗公式,模擬人眼感受,不是推導的 1.34.164.174 06/05 20:35
BoXeX:剛剛重新想了一下 大概瞭解了 非常感謝你 114.32.216.156 06/05 20:59
Schottky:剛剛想了一下,這樣講你可能比較容易了解 220.137.5.145 06/05 21:19
Schottky:色彩空間轉換公式並不是讓值域一對一映射 220.137.5.145 06/05 21:20
Schottky:而是在轉換的過程中老是會剪掉一些部份 220.137.5.145 06/05 21:20
Schottky:那反正太極端的我們也不在乎(例如L<0) 220.137.5.145 06/05 21:21
Schottky:這就造成有些顏色RGB->LAB->RGB後會走樣 220.137.5.145 06/05 21:22
Schottky:質疑公式(或者說設法理解)才是科學的精神 220.137.5.145 06/05 21:25
Schottky:我不該說不要質疑公式那句話... 220.137.5.145 06/05 21:25
Schottky:各種色彩空間定義都各有缺陷, 220.137.5.145 06/05 21:37
Schottky:像RGB無法表示飽和黃色,卻多了不存在的 220.137.5.145 06/05 21:37
Schottky:飽和綠色等等(純綠光會同時刺激紅綠細胞) 220.137.5.145 06/05 21:38
Schottky:說錯,RGB是無法表示某些飽和色如飽和橘 1.34.164.174 06/05 22:08
BoXeX:原來如此....完全忽略會被剪掉.....感謝 114.32.216.156 06/06 01:10