發表文章

目前顯示的是有「s1091506」標籤的文章

s1091506 作業6

圖片
題目:      附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。 開發環境:     Window 11 + Python 3.10 + Vscode 執行方法: 用Run-Length進行壓縮 def run_length_encode ( data ):     encoded_data = []   # 儲存壓縮後的資料     count = 1   # 目前的重複計數器     for i in range ( 1 , len ( data )):         if data [ i ] == data [ i - 1 ]:   # 若與前一個元素相同,增加重複計數器             count += 1         else :             encoded_data . append (( count , data [ i - 1 ]))   # 若不同,將前一個元素及計數器加入壓縮資料             count = 1   # 重設重複計數器     encoded_data . append (( count , data [ - 1 ]))   # 加入最後一個元素及計數器     return encoded_data 執行結果: 下面為壓縮前後對照圖 壓縮率=2.7618 壓縮率=1.6590 壓縮率=2.8970 平均壓縮率=2.2900

s1091506 作業5

圖片
功能: 利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚 區域並將其標示出。(請用附件中的三張照片做測試)   開發環境:      Window 11 + Python 3.10 + OpenCV  4.7.0 程式作法: 1.將圖像轉換到HSV色域 2.圖像分割,分別獲取 h, s, v 通道分量圖像 3.根據原圖像的大小創建一個全0的矩陣,用於抱存圖像數據 4.判斷HSV通道數值,如果在指定範圍中,則把新圖像的點設成255,否則設成0 執行結果:

s1091506 作業4

圖片
 題目:      附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去         除)。 開發環境:      Window 11 + Python 3.10 + OpenCV  4.7.0 程式做法:      主要用medianBlue()去除雜訊,再用GaussianBlur()使不均勻的像素值變得平滑,輪廓更精準。      medianblur(中值模糊):         左圖為原始圖片的3*3像素質          右圖為經過medianblur之後的結果      計算方式為:          將mask遮到的部分,由小到大排序,如下:                    1, 2, 2, 3, "3", 4, 5, 6, 208          可得中數為3,以3取代中間值。           執行結果:

s1091506 作業3

圖片
  題目: 撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖 像轉換至頻域後,將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出,再呈現還 原後圖像。 開發環境: Window 11 + Python 3.10 + OpenCV 4.7.0 執行結果: 程式作法: 1.傅立葉變換函數: 需要將影象進行一次float轉換,接著將頻譜低頻從左上角移動至中心位置。 2.頻譜影象雙連結複數轉換為 0-255 區間->算頻譜。 3.相位角圖: 用np.angle()可得。 4.逆傅立葉變換函數: 利用np.fft.ifftshift()將其shift back, 將複數轉為浮點數進行傅立葉頻譜圖顯示。

s1091506 作業2

圖片
 題目說明: 撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE)  (a)利用 Sobel Operators 偵測並輸出邊緣成分圖  (b)設計一個類似素描線條的自畫像圖案。(想想:如何使用邊緣偵測所得到的點,結合 成看似素描筆畫出的線條?) 開發環境: Window 11 + Python 3.10 + OpenCV 4.7.0 執行結果: 程式介紹: 用高斯濾波將圖片模糊化,可使結果得到較清晰的輪廓 用Sobel提取輪廓 將圖片做二值化->圖1 將圖片黑白翻轉->圖2 最後將圖1和圖2疊加可得結果

s1091506 作業1

圖片
  功能: (1)將一張圖像的整張圖像,旋轉一個角度(逆時針旋 轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。 (2)將一張圖像中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。 開發環境: Windows 11 + Python 3.10 + OpenCV 4.7.0 執行結果: 程式介紹: 讀取圖片,新建視窗以及Tracker。 從Tracker拿值,以中心點為轉軸旋轉。 從Tracker拿值,把挖掉圓型的圖存到outSide,建立圓形遮罩(只能顯示中間圓形圖案),最後將其合併,以中心點為主軸旋轉,且只能看見內切圓旋轉。 圖outSide