[問題] 圖像的RGB修色問題
小弟最近接了一個要做修色軟體的工作
但前幾天老闆跟我說我的RGB修色功能有問題
他拿我寫的軟體把某張照片的Blue增加,
老闆說我的軟體會把圖片的白色也一併增加
這樣會造成白的不白,黑的不黑
我跟老闆解釋說因為我是把圖片的每一個像素都進行處理,才會這樣
而且這樣不是很正常嗎
這時老闆打開了他目前再用的修色軟體,他的修色軟體再增加Blue的時候
白的依然很白,黑的依然很黑,但其他的顏色都會正常的增加Blue
可是當Blue調整的幅度越來越大時,白與黑也都會漸漸得變成不是原來的顏色
也會有淺淺的藍色在上面,老闆要求我的修正也要跟他那套軟體一樣
可是我不懂圖像色彩,老闆給的提示實在是讓我不知道該怎麼去解決這問題
老闆猜說『我有用Photoshop的色彩平衡研究過,
我再猜應該就是你的程式沒有「保留明度」的關係,
然後我在想我現在用的軟體,應該是修改的顏色只有一點點的話,
那些白色跟黑色都不會動,或者是動的幅度很少,
只有當修改的顏色很大時幅度才會增加的明顯』
色彩平衡,保留明度的圖:http://ppt.cc/7XmV
我的問題好像有點籠統....
不知道懂圖像的人能不能給我點提示,告訴我修色的功能是缺了什麼部分
我有查過『保留明度』這功能,可是查到的都是HSL的L
可是這跟修改RGB感覺又沒關係...
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.218.10.18
推
10/25 23:02, , 1F
10/25 23:02, 1F
請問RGB加權平均是說把整個圖像的r、g、b都個別加起來在平均嗎?
推
10/25 23:02, , 2F
10/25 23:02, 2F
可是HSL的H是0~360的顏色調整,用那個調整感覺好像會跑到別的顏色去耶@@
→
10/25 23:02, , 3F
10/25 23:02, 3F
→
10/25 23:03, , 4F
10/25 23:03, 4F
推
10/25 23:43, , 5F
10/25 23:43, 5F
好的,謝謝你
推
10/26 00:00, , 6F
10/26 00:00, 6F
那時沒想到要把圖帶回來,而老闆那套軟體又只能在他那台電腦執行
因為程式會去檢查某台機器是否是開機狀態,是的話才能執行...不好意思
→
10/26 00:01, , 7F
10/26 00:01, 7F
就如果使用者把B增加10,以下是我程式做法
for( int i=0; i<img.width(); ++i)
for( int j=0 ; j<img.height(); ++j){
QColor c = img.pixel(i,j); //將指定的座標轉成QColor
int valueB = c.blue() + 10; // 取出c的blue並+10
if( valueB > 255 ) //檢察valueB是否有再合理範圍
valueB = 255;
else if( valueB <0)
valueB = 0;
img.setPixel(i,j,c.rgb()); //將c轉成rgb並貼在指定的座標上
}
→
10/26 00:01, , 8F
10/26 00:01, 8F
好的我查查看,謝謝唷
※ 編輯: googled 來自: 180.218.10.18 (10/26 00:10)
推
10/26 00:13, , 9F
10/26 00:13, 9F
推
10/26 00:15, , 10F
10/26 00:15, 10F
→
10/26 00:18, , 11F
10/26 00:18, 11F
→
10/26 00:18, , 12F
10/26 00:18, 12F
推
10/26 00:19, , 13F
10/26 00:19, 13F
→
10/26 00:26, , 14F
10/26 00:26, 14F
請問一下S大,請問你說的方式是什麼意思?
我剛剛上網查Gamma correction都是在介紹伽瑪的東西,
然後我補上C++或者是RGB當關鍵字也找不太到例子@@
※ 編輯: googled 來自: 180.218.10.18 (10/26 00:48)
→
10/26 01:19, , 15F
10/26 01:19, 15F
→
10/26 06:48, , 16F
10/26 06:48, 16F
→
10/26 06:49, , 17F
10/26 06:49, 17F
→
10/26 06:51, , 18F
10/26 06:51, 18F
→
10/26 06:52, , 19F
10/26 06:52, 19F
→
10/26 06:53, , 20F
10/26 06:53, 20F
→
10/26 06:55, , 21F
10/26 06:55, 21F
→
10/26 06:57, , 22F
10/26 06:57, 22F
感謝你的回覆,其實第二種方法我看不太懂...
而第一種方法我上網去查轉換的公式
Y=R*0.299+G*0.587+B*0.114;
U=R*-0.169+G*-0.332+B*0.5+128;
V=R*0.5+G*-0.419+B*0.0813+128;
我不太懂得是既然Y、U、V的轉換都會需要R、G、B
那所謂的把藍色平移是什麼意思@@?
謝謝你
※ 編輯: googled 來自: 180.218.10.18 (10/27 22:04)
→
10/27 22:50, , 23F
10/27 22:50, 23F
→
10/27 22:51, , 24F
10/27 22:51, 24F
→
10/27 22:53, , 25F
10/27 22:53, 25F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
7
25