發表文章

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

s1083510 Homework #7

圖片
  主題:影像分割及物件偵測 Image Segmentation and Object Detection 專案目標: 撰寫一個程式來偵測出附件 2 張視訊照片中的所有書桌的桌面區域。 (1) 標示出每張桌子的桌面的矩形邊界框 (Bounding box) (2) 標示出偵測到桌子的桌角 敘述你的方法與流程。   開發平台: Microsoft Windows 11, Visual Studio Code (version 1.86), OpenCV 4.9.0, python 3.11.5 專案說明: 讀進圖片以後,先對圖片做一些前處理: 1.   對圖像做高斯模,以減少干擾和雜點。 2.   把圖像轉成 HSV 彩色空間後,根據桌子顏色的 HSV 範圍(桌子明暗),設置顏色上下限並生成 mask 。然後再做一次高斯模糊,進一步減少雜點。 3.   使用型態學操作執行開運算及閉運算去除雜訊和小區域。 4.   用 findContours ()函數再圖片中找出輪廓並標示出來。 接著,計算出輪廓的形狀。若輪廓形狀接近四邊形,則將其保留下來,並在圖片上標示出桌角及矩形邊框。   結果輸出: 上圖為做完前處理的二值化圖片,下圖為輸出結果。 Image1 Image2  

s1083510 Homework #6

圖片
  主題:數學形態學影像處理 Morphological Image Processing 專案目標: 利用數學型態學影像處理,計算復健圖片中的大木圓榫數量,以及小木圓榫數量,並敘述方法和流程。   開發平台: Microsoft Windows 11, Visual Studio Code (version 1.86), OpenCV 4.9.0, python 3.11.5   專案說明:     我把流程分成兩個步驟,在計算大、小木圓榫之前,先把照片作前處理。      圖片以灰階的形式讀進來以後,先增強對比度,讓圓的效果更明顯,再去做高斯模糊與二值化,形成以下圖片。 接下來,運用型態學的 MORPH_OPEN 和 MORPH_CLOSE 來去除白點跟填補小洞。完成後,即可運用 HoughCircles () 霍夫變換 來偵測圓形,並計算大、小木圓榫的數量。 結果輸出: 藍色 為大 圓榫數量:19 紅色 為小 圓榫數量:29

s1083510 Homework #5

圖片
  主題:影像壓縮練習 Run-Length Based Image Compression 專案目標: 設計一個基於 Run-Length 的壓縮方法,對附檔的三張將晶片高度以色彩視覺化後的圖檔作無失真壓縮,並儲存成新檔案,再計算三張圖的平均壓縮率。   開發平台: Microsoft Windows 11, Visual Studio Code (version 1.86), OpenCV 4.9.0, python 3.11.5        專案說明:     在進行 RLE 壓縮時,我用 numpy 下的 flatten() 來計算圖像像素連續出現的次數(因將圖像數據轉為一維數組較容易做操作)。最後便可知道一個像素值及其餘圖像中連續出現的次數。      首先,把三張 BMP 檔讀進來,再把此彩色圖像分為紅色( R )、綠色( G )和藍色( B )三個通道,並運用上述的 RLE 方法去對此三個通道做編碼後,寫入壓縮檔。運用 value 和 count 來記錄數值及其出現的次數。 計算原始圖像的數據大小( height*width*3 通道數),以及計算壓縮數據的大小( value, count ),如此便可得知 Compression Ratio (Compression Ratio = Original Size/Compressed Size) ,即原始數據大小與壓縮以後的數據大小的比值。 最後,使用 with 打開文件,寫入壓縮後的數據(包含像素值和連續出現次數),並將壓縮後的檔案儲存到資料夾中。 解壓縮為原始檔案:解壓縮上述被我們壓縮過後的 RLE 檔,解析三個通道長度編碼數據,並解壓縮為圖像數據,再合併成一個彩色圖像後輸出。 結果輸出: 圖中顯示原始 BMP 檔案和壓縮過後存成 RLE 檔案的大小: Compression Ratio ( Compression Ratio = Original Size / Compressed Size ): img_1 : 2.47 img_2 : 1.43 img_3 : 2.69 此圖為解壓縮後的無失真原檔: 以下顯示,對BMP檔做無失真...

[s1083510 Homework #4]

圖片
  主題:膚色偵測 Skin Color Detection 專案目標: 撰寫一個程式來偵測照片中的皮膚顏色區域並將其標示出。使用附件中的 6 張照片及膚色標準答案 ( Ground Truth ) 做測試,並呈現所設計膚色偵測方法執行結果的 IOU ( Intersection Over Union ) 數值 ( 每張圖片值及所有 6 張圖片平均值 ) 。      開發平台: Microsoft Windows 11, Visual Studio Code (version 1.86), OpenCV 4.9.0, python 3.11.5   專案說明:         我運用 Hue Based color space 來做膚色偵測,以下圖片顯示,我所代的參數膚色偵測區間:         隨後,創建一個膚色的遮罩,此遮罩會將已轉成 HSV color space 的圖像其像素,於所設定的偵測範圍區間內(上限和下限內)標記為皮膚像素。也就是說,被標記為皮膚的部分會設置成非 0 元素(即 1 )。      接下來,把 GroundTruth 照片 讀進來,並二值化黑白影像,使其也呈現 0 與 1 的值以後,便可運用邏輯運算子 AND 和 OR 來測試自己所計算出的膚色區域像素與膚色標準答案區域像素的差異,並計算 IOU 數值。 結果輸出:     下圖顯示, IOU 數值以及六張照片的 IOU 數值平均值,以及原始圖片、GroundTruth圖片和我自己所計算出來的膚色區域像素。

[s1083510 Homework #3]

圖片
主題:傅立葉轉換與影像復原處理 專案目標: 將受到雜訊干擾的圖片,使用頻域濾波技術對影像進行處理。使得圖片盡可能恢復為原始狀態。           開發平台 : Microsoft Windows 11, Visual Studio Code (version 1.86), OpenCV 4.9.0, python 3.11.5   專案說明:         使用 plt 給定尺寸為 2x2 的畫布,為方便傅立葉計算,將圖片轉為灰階(單個通道)。接著用 np.zeros() 以零填充,創建一個 MxN 大小的 image 。 使用 np.fft.fftshift() 函式平移頻譜圖,將圖片放置到中心,並計算圖像的離散傅立葉轉換( DFT ),因其為複數,使用二維矩陣 planes 來儲存。利用 cv2.dft() 計算,再用 cv2.split() 分為兩通道。      獲取濾波後的圖像,使用 cv2.idft() 來做 inverse 傅立葉轉換,並將結果顯示在 2x2 畫布上。 結果輸出:      圖片從左至右、從上至下分別為受到雜訊干擾的圖片(原檔)、傅立葉變換後的幅度頻譜和相位頻譜,以及復原的圖片。                例一:                例二:   

[s1083510 Homework #2]

圖片
  主題:邊緣偵測與圖像二值化 專案目標:     利用邊緣偵測與二值化演算法寫一個程式,將元智建築物與風景彩色照片,作處理成黑白輪廓線條圖案。           開發平台: Microsoft Windows 11, Visual Studio Code (version 1.86), OpenCV 4.9.0, python 3.11.5   專案說明:           利用 cvtColor() 來轉換影像色彩為灰階,我選用 COLOR_BGR2GRAY 將 RGB 轉換為灰階。接下來,根據不同的照片線條,調整模糊程度( medianBlur or GaussianBlur ),以幫助照片更好的去做二值化 。                                               

[s1083510 Homework #1]

圖片
主題:圖像感興趣區域裁切、旋轉與縮放 專案目標:     運用 Python 中的 OpenCV 函式庫,撰寫一個程式。讀取一張圖像,使用者可以放大(或縮小)、旋轉圖像,並選取一個感興趣的矩形區域做裁切並儲存。     以元智大學照片為例,程式希望能讓不同大小的相片設定成相同大小( 600x600 像素)以方便使用者觀看及裁切。 開發平台: Microsoft Windows 11, Visual Studio Code (version 1.86), OpenCV 4.9.0, python 3.11.5      下圖程式為對圖像做前處理,包含了旋轉和縮放的操作。並把borderValue設置為白色(預設為黑色)      下圖為onMouse()函示,設置三個EVENT,分別是EVENT_LBUTTONDOWN左鍵點擊、EVENT_MOUSEMOVE滑動,以及EVENT_LBUTTONUP左鍵放開。用來偵測滑鼠所畫出之矩形。 建立一個叫做'pic'的600x600像素window顯示原始圖片,設計Trackbar讓使用者調整圖像縮放比例、旋轉角度與目標矩形,並可儲存圖片。 Trackbar介紹: Degree:旋轉角度 Zoom:縮放比例(初始直設100為原本比例) 可旋轉圖片至自己想要的位置並裁剪,可看到圖中顯示綠色方框,為裁剪的部分。以及裁剪出儲存至目錄下的圖片。 可縮放圖片至自己想要的位置並裁剪,可看到圖中顯示綠色方框,為裁剪部分。以及裁剪出儲存至目錄下的圖片。