作業1說明:
撰寫一個程式讀取ㄧ張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變 每個像素的 R 值。 注意修改後像素值溢位 Overflow 問題(像素值介於 0 與 255 之間)。
開發環境:
windows10
vscode
python3.9.6
opencv_python-4.5.5.62
程式想法:
一開始先用imread()裡面的flags判斷是RGB圖片還是灰階圖片
RGB圖片的flags是1 , 灰階圖片的flags是0
flags是0的話 , 代表他img.shpae只有兩個(長*寬)
flags是1的話 , 代表他img.shape有三個(長*寬*通道)
接著 ,用兩個for迴圈來更改數值 , 如果是灰階圖片 , 更改灰階值. 如果是RGB圖片 , 就更改R值
然後cv2.imshow()顯示 , cv2.waitkey(0)讓他停留
溢位問題:
超過255就讓像素直等於255
低於0就讓像素值等於0
Demo影片:https://youtu.be/9GTa-Jr7UD8
灰階+80
灰階-80
RGB+80(R)
RGB-80(R)
沒有留言:
張貼留言