s1081414 作業5 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 - 5月 16, 2023 主題:膚色偵測利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚 區域並將其標示出。(請用附件中的三張照片做測試) 開發環境: Windows 10Visual Studio Codepython 3.9.7OpenCV 4.7.0說明:1.從三張圖像文件讀取圖像並將它們轉換為HSV色彩空間。2.定義了一個範圍,該範圍根據HSV色彩空間中皮膚的色彩特徵定義。3.使用該範圍創建皮膚遮罩,標記皮膚區域。4.將皮膚區域的像素顏色設置為黃色。5.調整圖像大小並顯示結果 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言
s1083350 作業3 - 4月 19, 2023 主題 離散傅立葉轉換 DFT 練習 一、題目說明 撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖 像轉換至頻域後,將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出,再呈現還 原後圖像。 二、開發環境 OS:Windows 10 Editor:Visual Studio Code Language:Python 3.9.13 Package:OpenCV - 4.6.0 若無下載matplotlib,請先pip install matplotlib 三、程式碼說明 流程 1.首先做一次傅立葉轉換 2. 計算頻譜大小和相位角 3.將頻譜大小和相位角轉換為灰階圖像並顯示 4.進行逆傅立葉轉換,還原原始圖像 5.顯示還原後的圖像 np.fft.fft2() : 進行二維傅立葉轉換,返回頻域的複數 np.abs() : 將複數取絕對值 np.angle() : 取相位角 cv2.normalize() : 將頻譜大小及相位角轉灰階時使用 np.fft.ifftshift() : 逆傅立葉轉換中心化的函數。若是二維數組,它會將數組中心的低頻部分移回到數組的左上角位置,還原圖像時使用 np.fft.ifft2() : 二維逆傅立葉轉換 ,還原圖像時使用 import matplotlib . pyplot as plt 引用matplotlib中pyplot套件以印出還原後的圖片 四、執行結果 頻譜大小 灰階圖像 相位角灰階圖像 還原後的圖像 閱讀完整內容
s1091438 作業6 - 6月 03, 2023 Run-Length Based Image Compression 練習 一、題目說明 附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法 方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式, 並計算三張圖的平均壓縮率(compression ratio)。 二、開發環境 OS : Windows 11 Editor : Visual Studio Code Language : Python Package : OpenCV - 4.7.0 三、使用Function說明 & 步驟 (a) 定義 Run-Length Function 1 . 思路 假設,有一個數據 序列 [1, 1, 1, 2, 2, 3, 4, 4, 4, 4] ,將它用 RLE 進行 壓縮 。 壓縮後 的結果為 [(1, 3), (2, 2), (3, 1), (4, 4)] ,表示原始數據序列中有 3 個連續的 1,2 個連續的 2,1 個 3, 以... 閱讀完整內容
s1093705 作業二 - 3月 24, 2023 線條自畫像 (二值化與邊緣偵測 Image Thresholding and Edge Detection) 題目說明: 撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) (a)利用Sobel Operators 偵測並輸出邊緣成分圖 (b)設計一個類似素描線條的自畫像圖案。 開發環境: Windows 11 Visual Studio Code Python 3.11.2 Opencv 4.7.0 實作結果: Sobel Operators 偵測邊緣圖 邊緣圖轉換成素描風格圖 不同技術轉換成出的素描風格圖 實作Demo: 程式說明: 本題利用 cv2.createTrackbar() 和 cv2.getTrackbarPos() 來控制以下變數,來尋找邊緣偵測的最佳參數: A: 用 cv2.threadhold() , 將圖形顏色較淡的地方,去除小於A 的值,A 以上的值維持不變。 B:用高斯分佈進行模糊化的計算,指定模糊區域單位 BxB。 C:用 cv2.threadhold() ,去除小於 C 的值,C 以上的值維持不變,以達到 加強邊緣線的效果。 D: (a)利用Sobel Operators 偵測並輸出邊緣成分圖 1. 先將圖形顏色較淡的地方,用 cv2.threadhold() 去除,此例是去除小於A 的值,A 以上的值維持不變, 參數介紹: ( Reference ) v2.THRESH_BINARY 如果大於 A 就等於 255,反之等於 0。 cv2.THRESH_BINARY_INV 如果大於 A 就等於 0,反之等於 255。 cv2.THRESH_TRUNC 如果大於 A 就等於 127,反之數值不變。 cv2.THRESH_TOZERO 如果大於 A 數值不變,反之數值等於 0。 cv2.THRESH_TOZERO_INV 如果大於 A 等於 0,反之數值不變。 ret , image = cv2 . threshold ( image , A , 255, cv2 . THRESH... 閱讀完整內容
留言
張貼留言