撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。
本次作業共有三張圖片輸出,第一張圖片為原始圖片,第二張圖片為使用opencv內建函數converTO將亮度增加50的輸出,第三張圖片為訪問各個pixel取值後增加RGB各50直到255。
使用平台與工具: visual studio 2019 + openCV 3.4.8
圖中由左至右分別為第一張、第二張、第三張圖片 |
以下是兩種做法的code
第二張圖片:使用內建函數
image.convertTo(Cimage, -1, 1, n);
第三張圖片:訪問所有pixel後改值
for (int y = 0; y < rows; y++)
{
for (int x = 0; x < cols; x++)
{
Vec3b& pixel = image.at<Vec3b>(y, x);
for (int bgr = 0; bgr < 3; bgr++)//bgr
{
(pixel[bgr] + n <= 255) ? pixel[bgr] += n : pixel[bgr] = 255;
}
}
}
結果顯示兩者的輸出相同
沒有留言:
張貼留言