2022年2月22日 星期二

s1083346 作業 1

作業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)






沒有留言:

張貼留言