[解題] C++ 修圖方法、公式
1.對象: ←(年齡、性別缺一不可;漏掉一個水桶三天。)
22歲男
2.地點: ←(請注意自身安全、財物等。)
網路
3.科目:
C++ 程式設計的修圖方法、公式
4.上課時間:
隨時
5.時薪:←(不能打"面議、詳談、可議、自行開價等;若限制水桶14天。)
500訂金,完成後再付1000 可議
6.條件:←(依據法令規範,不得限制性別,若限制了水桶14天。)
熟悉修圖,且給的答案須符合條件
7.聯絡方式:(若有限定電話需要在哪些時間撥打 請在此區附註)
站內信
8.附註:
我有一個case需要能夠修改圖像中R、G、B數值的功能,
目前我程式是弄最笨的方法,
假設要把圖像的R+10,那麼我就會跑雙迴圈去巡迴圖像上的每一點像素,
取出該像素的R、G、B後,
再將R+10,再將修改完後的R、G、B取代原像素,例如:
for( int i=0 ; i<img.width(); ++i){
for( int j=0 ; j<img.height() ; ++j ){
QColor color = img.pixel(i,j) ; // 取出座標i,j的像素
int R = color.red() + valueR ; //取出該像素的r值後在加上要修改的大小
//這裡的valueR是10
int G = color.green() + valueG ;
int B = color.blue() + valueB ;
color.setRGB (R,G,B); //將修改好的R、G、B傳回color
img.setPixel( i , j , color.rgb() ); //將color的RGB取代原像素的顏色
}
}
可是這麼一來會變成圖像上黑的不黑、白的不白,所以這方法是錯的,
並不符和案主的需求
我上網查了很久,都找不到正確解答,有人說要把RGB轉成HSV來修改,改完後再轉回RGB
可是我不懂,如果我轉成HSV,那麼我R要+10以及G要-20的話HSV要如何調整?
也有人說是要把RGB轉成YUV,可是也是一樣的問題,我不知道要如何調整YUV
案主本身也不曉得什麼樣的公式才是他要的,案主只明白修出來的顏色對還是不對
因此必須要老闆說正確後,我才會將尾款付清
老闆曾經說PS的『色彩平衡』裡的『保留明度』應該就是他要的顏色
我上網找了一張原圖:http://ppt.cc/XXzB
以下兩張是將B+100改出來的圖案
沒有保留明度:http://ppt.cc/T-Oh
有保留明度:http://ppt.cc/zJpB
可以很明顯的看到,有保留明度的頭髮依然略顯黑色
老闆說這應該就是她需要的功能,
所以如果高手們知道這保留明度其中的公式的話
還希望能指教一下,感謝
價錢可議,謝謝
提醒:所張貼文章須符合法令所規範的薪資報酬,且不得限制性別等規定。
如違反將按照板規處分。
----
如使用者對於本篇文章想回覆者,請記得按M,回覆至作者信箱
誤發至板上三天內有權自行刪除一次,再犯者水桶兩週。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 49.158.60.5
推
12/21 18:07, , 1F
12/21 18:07, 1F
推
12/21 18:09, , 2F
12/21 18:09, 2F
推
12/22 01:50, , 3F
12/22 01:50, 3F
→
12/22 01:50, , 4F
12/22 01:50, 4F
→
12/22 01:50, , 5F
12/22 01:50, 5F
推
12/22 16:00, , 6F
12/22 16:00, 6F
推
12/23 17:30, , 7F
12/23 17:30, 7F