發表文章

目前顯示的是 5月, 2023的文章

s1061637 作業6

圖片
  主題 :  Run-Length Based Image Compression 練習 作業要求: 附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio) 。 開發環境: Windows 11 Vscode python Open CV 4.7 作業步驟說明: 1.  導入需要的程式庫。 2.  在 main function 中先行寫好要讀入的圖片路徑與規畫要完成的步驟。 l    將三張欲讀入的圖片路徑存為 image_paths ,壓縮後的檔案命命名為 compressed_img.npz 。 NPZ 格式是 NumPy 的壓縮存儲格式, 是壓縮的二進制文件,其內容由數個 NumPy 數組組成。 NPY format ref: numpy.lib.format — NumPy v1.24 Manual l    將解壓縮後的圖片儲存為 img_de.bmp ,方便後續比對。 l    對每一張圖片都進行以下操作:將檔案進行壓縮,並透過 compressed_files function 一邊壓縮文件,一邊暫時存起檔案的 size ,以方便後續解壓縮時 reshape 。 l    以 deccompress_image function 對剛剛壓縮完的檔案進行解壓縮, l    計算壓縮率,並將三張圖片的壓縮率進行加總,最後除以三 獲得平均壓縮率,在螢幕上顯示平均壓縮率。 3.  compress_img( 圖片路徑,輸出名稱 ) :按照路徑讀入圖片並存起圖片的 shape 。將圖片的 bgr 通道透過 cv2 的 split 功能分離,並使用 np 的 flatten() ,將 array 攤成一維方便後續 run_lengh_encode 壓縮。將壓縮後的 np array 以 np.save_compressed 功能存成npz檔案。最後回傳圖片的 shape 。 4. run_length_encode( 一維 np array data) :將剛剛 flatten 完的 np arr

s1081410 作業6

圖片
  作業 6 附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。   使用 win10 python3.7 VS2019 壓縮及解壓縮方法使用 RLE   壓縮時由於出現大小不足的問題 因此採用 2byte 否則壓縮率可以更高  壓縮檔為RLE檔 壓縮率 Img1 約為 1.71 Img2 約為 2.24 Img3 約為 1.8 作業只要求壓縮 但我程式中有自行撰寫解壓縮function 在我撰寫解壓的過程中  img2壓縮時沒有問題 但是我自行撰寫的解壓縮過程這張會出現錯誤 如果先縮小四倍則不會遇到問題

s1091530 作業5

圖片
  1. 開發環境 windows11 Python:3.8.13 opencv-python:4.7.0.72 numpy:1.24.2 2. 功能 imread() : 讀取圖片。 HSV: cv2.cvtColor(img, cv2.COLOR_BGR2HSV) : 轉換GBR到HSV的顏色空間。 cv2.inRange() : skin color range for hsv color space。 cv2.morphologyEx() : 利用形態學操作將得到的皮膚mask做降噪。 HSV_result = cv2.bitwise_and(img, img, mask=HSV_mask) : 取得皮膚mask。 YCrCb: cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb) : 轉換GBR到YCbCr 的顏色空間。 cv2.inRange() : skin color range for hsv color space。 cv2.morphologyEx() :  利用形態學操作將得到的皮膚mask做降噪。 YCrCb_result = cv2.bitwise_and(img, img, mask=YCrCb_mask) :   取得皮膚mask。 3. 結果 圖一 : 適合YCbCr 圖二 : 適合YCbCr 圖三 : 適合 HSV

s1083506 作業 5

圖片
  主題   膚色偵測  Skin Color Detection 利用你所學的顏色 (Color) 的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。 ( 請用附件中的三張照片做測試 ) 實作方法 使用 cv2.imread 讀入圖片,分別將圖片轉成 HSV 與 YCrCb 色域,設定兩者的數值上限與下限,根據上限與下限分別得到兩者的遮罩,將上述去得的遮罩合併,獲得更好的偵測膚色效果,最後結果顯示出。   執行解果    開發環境 OS : macOS Monterey 12.6.3 Editor : Visual Studio Code Language : Python 3.8.16 Package : OpenCV 4.7.0  

s1081444 作業5

圖片
Assignment #5 主題:膚色偵測Skin Color Detection 功能: 利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚 區域並將其標示出。 開發環境: Windows 10 Visual Studio 2022 OpenCV 4.2.0 C++ 過程: 1.用cvtColor()將原圖從BGR轉成HSV 2.用inRange()篩選出皮膚範圍 3.用.setTo()將2.偵測到的部分用紅色塗回原圖 執行結果:

s1091404 作業5

圖片
 主題: 膚色偵測 Skin Color Detection 利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚 區域並將其標示出。(請用附件中的三張照片做測試) 開發環境:  Windows10, visual studio code, python310, opencv 4.5.4 功能說明:  使用下列函式庫進行撰寫 用os函式庫找出檔案位置將圖片讀入 本次作業我使用HSV模型來判斷圖片中的膚色,先將圖片從BGR轉換成HSV,接著對轉換後的圖片做高斯濾波過濾掉雜訊,盡可能避免後續在判斷顏色時將不是皮膚的部分也標示出。 根據我試驗的結果,我將膚色的各項數值定在下列範圍中: H: 0~40度和320~360度、S: 45~180、V: 60~255。建立一個大小和原圖相同的全黑圖片,此圖片用作mask圖,然後遍歷原圖的每一個像素,若像素的顏色符合這些範圍條件,則將mask圖中位置相對應的像素改為白色。如此可以得到二值圖,白色的部分為皮膚,其餘為黑色。 得到mask圖後,用bitwise_and將原圖和mask圖做AND運算,即可得到只保留皮膚的圖像 我們也可以利用這張圖在原圖上將皮膚的部分標示出來,找出圖片中不為黑色的像素,並將原圖中對應位置的像素塗成藍色,即完成將膚色標示出來的功能。 部分皮膚可能會因為被陰影遮蓋而無法畫出,或是因頭髮或少部分的背景顏色和皮膚顏色相近而被塗上顏色。 其餘兩張圖片也使用同樣的方法標示出皮膚區域,最後使用plt.show將三張照片的原圖及標示圖放在同一張畫面一同顯示。

s1090339 作業5

圖片
把圖片讀進來,再把圖片改成 hsv 的讀取方式,利用雙層 for 迴圈去檢查 hsv 的值,檢查到屬於膚色的 hsv 會直接把原始圖片的該位置的 rgb 改成 255,0,0 最後輸出結果。 可以控制這裡的hsv檢查值去微調結果

s1093336 作業5

圖片
   一、作業說明 利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。(請用附件中的三張照片做測試)  二、開發環境 OS: Windows 11 64bit Editor: Visual Studio 2019 Language: C++ Package: OpenCV-4.5.0    三、程式功能 執行方式 直接執行本程式 執行設定 查看執行結果 Input Image視窗為皮膚標註的結果。  四、實作過程 整張圖像讀入。 用cvtColor()對圖像進行轉換。 設定膚色的upper_bound和lower_bound。 用inRange()製作mask。 mask 將mask中非0的數值設為綠色,即皮膚位置。 輸出圖片。 result

s1081539 作業5

圖片
 膚色偵測 Skin Color Detection 說明: 利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。(請用附件中的三張照片做測試) Write a program that detect skin color from an image.。 1. 開發環境 Windows 10 Visual Studio 2019 C++ OpenCV 4.7.0 2. 實作 程式中有4個膚色偵測的function,分別為: (1) RGB_detect:是基於RGB的膚色偵測,實作過程就是設定滿足膚色範圍的條件,並將其用紅色標註。 (2) YCrCb_Otsu_detect:首先要先將照片從RGB轉為YCrCb,對其中的Cr分量做Ostu的二值化處理後的到的圖像可用作遮罩,對膚色區域進行標註。 (3) HSV_detector:一樣先將先將照片從RGB轉為HSV,然後在不同顏色空間採取相應的顏色範圍將皮膚的部分標記出來。 (4) YCrCb_detect:一樣先將先將照片從RGB轉為YCrCb,方法一樣是在顏色空間設定符合膚色的範圍,以目前的程式來說,在Cr是133~173之間,而Cb則是77~127之間。 3. 結果 影片連結: 圖片成果: (1) RGB_detect (2) YCrCb_Otsu_detect (3) HSV_detector (4) YCrCb_detect 參考資料: https://www.cnblogs.com/skyfsm/p/7868877.html https://www.google.com/search?q=skin+color+detection&rlz=1C1GGGE_zh-TWTW429TW429&oq=skin+color+detection&aqs=chrome..69i57j0l5.4854j0j7&sourceid=chrome&ie=UTF-8