一、說明
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
二、開發環境:
- MacOS 12.3.1 m1 silicon
- PyCharm
- python 3.9
- opencv 4.5.4
三、實作方法
(一)需安裝matplotlib
(二)將讀進來的圖片依RBG進行通道分割
(三)把三通道利用flatten()轉成一維陣列
(四)壓縮編碼為:1,1,2,2,2,3,3,3,3 → 1,2,2,3,3,4
(五)最後輸出成.dat檔
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
(一)需安裝matplotlib
(二)將讀進來的圖片依RBG進行通道分割
(三)把三通道利用flatten()轉成一維陣列
(四)壓縮編碼為:1,1,2,2,2,3,3,3,3 → 1,2,2,3,3,4
(五)最後輸出成.dat檔
1. 作業說明:
·(1)撰寫程式讀取一張256色灰階圖像,計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
2. 開發環境:
o
Windows 10
o
Atom
o
OpenCV 4.5.5
o Python 3.9
3. 實作方法:
•將照片放入專案資料夾,會以灰階模式導入
•利用fft.fft2(a, s=None, axes=(- 2, - 1), norm=None)來進行傅立葉轉換
•以fft.fftshift將零頻率分量移到中心。
•利用magnitude()和phase()去取得相位和頻譜圖
•使用高斯函數取的平滑圖形。
一、 作業說明
撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) (a)利用 Sobel Operators 偵測並輸出邊緣成分圖 (b)設計一個類似素描線條的自畫像圖案。
二、 作業環境
Windows 10、OpenCV 4.5.5、Visual Studio 2017、C++
三、 實作方法
(1)輸入圖片名稱或是圖片路徑,如果輸入錯誤會有防呆,可以重新輸入。
(2)使用高斯函數減少圖片的雜訊,並且轉成灰階。
(3)利用sobel()完成邊緣偵測,導出edge_map。
(4)將黑白顏色反轉,形成素描風格圖片。
四、 成果
(1)
一、 作業說明
撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。
二、
作業環境
Windows 10、OpenCV 4.5.5、Visual
Studio 2017
三、 實作方法、執行結果
1.將input的圖片放入專案資料夾內,編譯程式後,輸入圖片名稱,如:XXXX.jpg。如檔案位置錯誤或名稱錯誤會跳出訊息,並且結束程式。
2.成功之後會跳出圖片,上方會有滑動條,可以調整角度,預設為零度,可以從0~360度,並及時出現在畫面中。
程式實作原理:
(1)首先,要先針對原圖進行分割處理,切出一個內切圓的圖、還有一個外框。
(2)分割的原理,先創兩個空白Mat物件,然後在原始圖片上切出一個圓圈,程式尋訪每個點,然後判斷該點是不是在圈內,如果是就將該點的資料複製到其中一張圖上,反之依然,圈外就複製到另外一張圖上,最後切出來的結果如下所示。
(3)我們再將只有圓的圖型,利用getRotationMatrix2D()、warpAffine()進行旋轉的動作。
(4)最後,再利用分割的尋訪模式,將旋轉過後的圖,重新映射回只有外框的圖上。
(5)加上拉條,完成。
一、 作業說明
輸入圖片路徑、欲調整數值,若圖片為灰階調整亮度,若圖片為彩色則只調整R值。調整後數值超出8bit範圍(0~255)則調整為最大值或最小值。
二、
作業環境
Windows 10、OpenCV 4.5.5、Visual
Studio 2017
三、 實作方法
1.將要輸入的圖片放入專案資料夾內,編譯程式後輸入檔案名稱,如:apple.jpg。如放入圖片錯誤或名稱錯誤會跳出提示並結束程式。
2.成功載入後,輸入要增加的值大小,程式會自行判斷圖片格式,做turn_red()或是turn_gray()。
3.最後會跳出視窗顯示修改過後的結果。
(1)程式說明:
程式碼fuction主要有3個。
bool grayscale(int h, int w, Mat image)
判斷是否為灰階圖片,判斷依據為看三通道的數值有無相同。
Mat turn_gray(int h, int w, int val, Mat
image)
如果是灰階圖片,則用此fuction的<Vec3b>3通道逐一改值。
Mat turn_red(int h, int w, int val, Mat
image)
如果是彩色圖片,則用此fuction,而只改<Vec3b>的R通道。
四、 執行結果