發表文章

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

s1083317 作業6

圖片
  S1083317 作業 6   題目 : 附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio) 。 環境 : Windows 10 Visual Studio 2019( 語言 python) OpenCV 4.5.5.62 程式碼片段解釋 : 使用 基於 Run-Length 的壓縮方法 逐像素檢查每個像素與前一個像素是否相等,是就計算 count 否則新一輪 EX AAABBC -> A3B2C1 以下就是在做這個 執行完後會得到 compressed_image list 裡面包含連續的像素的顏色值與次數 (pixel, count) ,接下來就是只要記錄下來就好了 結果圖片 :

s1083317 作業5

圖片
  題目 : 膚色偵測 Skin Color Detection 利用你所學的 顏色 (Color) 的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚 區域並將其標示出。 ( 請用附件中的三張照片做測試 ) Write a program that detect skin color from an image. 環境 : Windows 10 Visual Studio 2019( 語言 python) OpenCV 4.5.5.62 程式 : 一開始先讀取圖片 然後 resize 並顯示出原圖 使用cv2.cvtColor()將圖片轉換成較好操作的格式(HSV),然後用np.array()設定上下限, 依照設定好的 上下限用 cv2.inRange() 製作 mask後 將 mask 與原圖 AND 並顯示就完成了

s1083317 作業4

  S1083317 作業 4   題目 : 附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像 ( 將圖中雜 訊去除 ) 。 環境 : Windows 10 Visual Studio 2019( 語言 python) OpenCV 4.5.5.62 程式碼片段解釋 : 基本上大致上跟上次作業很像,只是多了利用 mask 來消除雜訊這個步驟而已,其他傅立葉反傅立葉都照著上次作業做就好 新的部分: createMask()是利用滑鼠點擊來建立 mask 的函數 操作方式就是在 ”myMask” 視窗點擊特別白的高頻雜訊,點完再按 esc 就可以產生 mask ,然後再將mask與頻域圖相乘便可以得到結果頻域圖,之後再對它做反傅立葉就完成了

S1083317 作業 3

圖片
題目 : 撰寫傅利葉轉換程式 (Forward Fourier Transform and Inverse Fourier Transform) 將一張圖 像轉換至頻域後,將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出,再呈現還 原後圖像。 環境 : Windows 10 Visual Studio 2019( 語言 python) OpenCV 4.5.5.62 原圖 程式碼片段解釋 : 先做一次二維快速傅立葉轉換 做完得到頻譜圖後先做 np.log() 加大幅度以便觀察,然後正規化並顯示,相位的部分用 np.angle() 計算然後一樣正規化後顯示 最後再用逆傅立葉轉換回圖片並顯示就完成了 結果圖片 : 原圖 頻譜圖 相位圖 反轉回來的圖片

s1083317 作業2

圖片
一、題目 : 線條自畫像 ( 二值化與邊緣偵測 Image Thresholding and Edge Detection) 撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE)   (a) 利用 Sobel Operators 偵測並輸出邊緣成分圖   (b) 設計一個類似素描線條的自畫像圖案。 ( 想想:如何使用邊緣偵測所得到的點,結合成看似素描筆畫出的線條 ?) 二、環境 : Windows 10 Visual Studio 2019( 語言 python) OpenCV 4.5.5.62 三、結果圖片 : (a) (b) 四、程式碼片段解釋  : 讀取圖片並灰階化 先做平滑處理再進行 sobel operation 比較過後我自己認為高斯平滑效果好於中值模糊處理 此即為 a 小題答案 而 b 小題答案是利用 threshold 將大於 threshold 的像素變白   反之 之後再用 not 反白就完成 b 小題了

s1083317 作業1

圖片
一、題目 : 圖像旋轉 (Image Rotation) 撰寫一個程式將一張圖像的 (a) 整張圖像 (b) 中心內切圓區域,旋轉一個角度 ( 逆時針旋 轉 0 度至 359 度 ) :利用一個滑動條 (trackbar) 控制旋轉角度。 二、環境 : Windows 10 Visual Studio 2019( 語言 python) OpenCV 4.5.5.62 三、程式碼  : 上圖為基本的初始化程式片段,只是 建立具有拉條的視窗後,執行 justPrint function          上圖為 justPrint function 的部份程式碼片段,主要是在建立 mask 首先先建立一張全黑畫布 ( 與 img 同高同寬的 0 矩陣 ) 並在中間畫一個白色的圓 (RGB 為 (255,255,255)) 即可以簡單建立一個 mask ,其矩陣數值如下示意圖所示 之後再利用 bit and mask 、 bit and ~mask 分別建立 img3 跟 img4 Img3: Img4: 最後在融合兩張圖並旋轉內部的圓就完成了 四、結果圖片 :