2021年3月2日 星期二

s1071540 影像處理作業1

 

一、作業說明

 撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值v( -255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。

二、作業環境&語言

Windows 10 + Visual Studio 2017 + OpenCV4.1.2 (Debug x64)

C++

三、方法&步驟

1.       cin輸入變數v

2.       imread讀取圖片

3.       at讀取像素值

4.       用迴圈將每個像素的RGB三值都加上v (範圍控制在0~255)

5.       imshow顯示修改後的圖

6.       imwrite另存新檔

 

五、執行結果

輸入畫面: 

圖片結果:(依序為原圖、v=-100、v= 100)


圖源:https://memes.tw/image/6619

s1061810 影像處理作業 1

作業題目:
圖像亮度調整 
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。

使用環境:
Windows 10
Python 3.8
opencv-python 4.5.1.48

實作方法:
  1. 用imread()讀取資料夾中的圖片
  2. 再依照使用者輸入的值用迴圈先判斷像素值是否溢位,若是溢位了,大於255的話將上限值調為255,若小於0的話下限值調為0,若像素值沒有溢位則將值加入在圖片中每個像素點中
  3. 用imwrite將調過後的圖像另存起來
  4. 用imshow()將圖片展示於視窗中

執行結果:
原圖
val = 200

val = -100

s1071438 影像處理作業 1

 1. 作業說明

            撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v 

   ( -255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。


 2. 使用環境

            Visual Studio 2017 c++

            Win10

            opencv-4.3.0

 3. 方法

           imread()讀入圖片

           設定亮度變數

            Mat::zeros函數建立新的空圖

            迴圈將各個像素值加上亮度變數

            if,else函數判斷溢位問題

            resize輸出的畫面

 執行結果

            原圖片與增加亮度後的圖片

            


            原圖片與減少亮度後的圖片
           

s1063511 影像處理作業1

 作業題目:

撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。

使用環境:

  • Windows 10
  • Python 3.9.2
  • opencv-python 4.4.0
  • numpy 1.20.1

實作方法:

先透過cv2.imread將圖片讀入,之後讓使用者輸入想使其加亮或者變暗的數值,接者使用三層迴圈逐步調整每個pixel的值,在執行的同時,也使用numpy中clip() function來確保數pixel值的範圍在0~255之間,避免溢位問題。結束過後利用cv2.imwrite將調整過後的圖存成一張新的圖片。

執行結果:

由左至右依序為 調暗(-50) -> 原圖 -> 調亮(+50)



資料來源:

戰錘巨人圖片來源:

https://truth.bahamut.com.tw/s01/202008/e89034f8514651f90d942942b05828e2.JPG?w=1000

2021年3月1日 星期一

s1071503 影像處理作業1

 1. 作業說明

            撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v 

   ( -255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。


 2. 使用環境

            Anaconda(conda 4.8.3)、Python 3.8.3、OpenCV 4.5.1

 3. 方法

            用imread()讀入圖片

            讓使用者輸入 v 值

            把圖片用copy()複製新的來處理圖片

            判斷圖片是彩色圖片還是灰階圖片(image.shape[2] 取image的維度)

            雙層for loop給每格像素加上 v 值(溢位直接設定255 or 0)

            寫入檔案到newimage.jpg

            顯示原圖片以及新圖片

 執行結果

            圖片的v值設定 +66 (上圖)  -66(下圖)

            左邊是原圖片 右邊是被寫入的新圖片





            

s1061402 影像處理作業1

1.      作業內容說明

輸入圖片路徑及要修改的v值,將圖片轉化過後輸出在畫面上

2.      開發環境

Windows10

Visual Studio 2017 c++

Opencv4.5.1 vc15

3.      操作方式

按照上面指示輸入圖片的路徑及名稱,接下來再輸入要修改多少RGBvalue來改變明暗度,輸入完成便輸出結果圖片。

4.      程式說明

首先先輸入一串string來給imread讀取該檔案,接下來輸入完v之後先建立一個ucharpointer來讀取原圖片的RBG來修改,修改時使用saturate_cast來避免修改後的RGB值溢出,最後使用imshow搭配waitKey來顯示圖片。

5.      程式結果

   v =  0  (原圖)
v = -100
v = 100




s1071648 影像處理作業1

 

作業說明:
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255 < v < 255),並將圖像儲存至一個新圖像檔案中。

環境:
Visual Studio 2017
OpenCV 4.5.1
Window 10
C++

實作方法:
1.imread讀取圖片
2.create Tracebar讓使用者方便調整亮度
3.用三個for迴圈調整每個像素的值
4.saturate_cast來防止像素質溢位的問題
5.imshow顯示新舊圖片
6.waitKey待使用者執行下一步後
7.imwrite儲存調整後的image


執行結果: