顯示具有 1063332 標籤的文章。 顯示所有文章
顯示具有 1063332 標籤的文章。 顯示所有文章

2020年7月1日 星期三

1063332 影像處理作業6


一、作業題目:
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附 圖像(共三張)每張圖像中圍棋個數。
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋 子數量的螢幕截圖。
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!
二、使用環境:
  • Visual Studio 2019
  • Python 3.7.6
  • OpenCV 4.2.0
  •  Numpy 1.18.2
  • Matplotlib 3.2.1
三、實作方法:
  • Imread讀入圖片
  • 對圖片做Otsu二值化
  • 對整張圖進行各種型態學運算(侵蝕 膨脹 開運算 閉運算)
  • 針對感興趣區域ROI做型態運算,以避免發生對全圖運算時可能會將重要資訊去除掉的情況
  • 最後使用findContours函數找出棋子
  • drawContours畫到二值化後的圖上
  • 使用pyplot輸出圖檔與偵測
四、成果:


2020年5月30日 星期六

1063332影像處理作業5


一、作業題目:

撰寫一個程式(a)在一張圖片中將上雜訊,(b)設計方法將雜訊去除。
(a)說明加上的雜訊類型(Gaussian, Uniform, Salt-and-Pepper )與數量(20%, 50%)
(b)說明所設計去除雜訊的方法

二、使用環境:

Visual Studio 2019
Python 3.7.6
OpenCV 4.2.0
Numpy 1.18.2
scikit-image(0.16.2)

三、實作方法:

對圖片產生的噪聲類型:
1.         高斯噪聲-使用函式np.random.normal()
2.         Rayleigh噪音-使用函式np.random.rayleigh()
3.         Gamma噪音-使用函式np.random.gamma()
4.         Exponential噪音-使用函式np.random.exponential()
5.         Uniform噪音-使用函式np.random.uniform()
6.         椒鹽噪音-使用函式skimage.util.random_noise()產生數量20%的椒鹽噪聲,椒噪聲與鹽噪聲比例為
        1:1

將噪聲加至圖片後,對圖片像素值做歸一化([0,255])及轉型為uint8

對各噪聲類型處理:
1.         高斯噪聲-使用中值及高斯濾波
2.         Rayleigh噪音-使用高斯濾波
3.         Gamma噪音-使用中值及高斯濾波
4.         Exponential噪音-使用高斯濾波
5.         Uniform噪音-使用中值及高斯濾波
6.         椒鹽噪音-使用中值濾波


 四、成果:

原圖:

左至右:噪聲/去噪聲 
Gaussian:
                                
Rayleigh:
                               
Gamma:
                                

Exponential:
                                       
Uniform:
                               
Salt & Pepper:
                                 







2020年5月17日 星期日

1063332影像處理作業四

一、作業題目:
          撰寫一個程式,偵測一張輸入照片中的皮膚區域並將其標示出。
二、使用環境:
          Visual Studio 2019
          Python 3.7.6
          OpenCV 4.2.0
          Numpy 1.18.2
三、實作方法:
         1.    Imread()讀取圖片
         2.    使用cvtColor()並將參數code選擇COLOR_BGR2HSV將圖片從rgb色彩模式轉換成hsv
         3.    使用inRange()函數對原圖做閾值化,保留要的顏色區間(橘色),形成一個掩膜(為灰階圖)
         4.    使用morphologyEx()函數對掩膜做開運算(即先侵蝕後膨脹)以使欲保留區域形成更完整的區塊  
         5.    使用GaussianBlur()對掩膜中的保留區進行平滑處理
         6.    使用bitwise_and()將掩膜和原圖的像素值進行and運算,讓掩膜中覆蓋到的區域呈現原圖原色,其餘則為黑色
         7.    Imshow()顯示原圖及結果圖




四、成果:
          原圖:

          結果圖:

2020年5月7日 星期四

1063332影像處理作業 3


1063332 影像處理作業 3
一、作業題目:

請撰寫一個程式,讀取一張 256 色灰階圖像(圖像大小適中以免執行時間太久)。計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。
二、使用環境:

Visual Studio 2019
Python 3.7.6
OpenCV 4.2.0
Matplotlib 3.2.1
Numpy 1.18.2

三、實作方法:
  1. Imread(img,0)讀取成灰階圖片
  2. 使用getOptimalDFTSize()取得優化尺寸
  3. copyMakeBorder()將圖片padding成優化尺寸
  4. dft()將圖片做傅立葉轉換
  5. numpy中的fft.fftshift()將頻譜圖移至中央
  6. cartToPolar()得到頻譜及相位
  7. numpy中的log1p()將結果數據壓縮到一定區間
  8. 使用pyplot輸出所有圖片
四、成果:


2020年4月5日 星期日

1063332 影像處理作業 2


一、作業題目:


撰寫一個程式,讀取作業所附 2 張測試圖片,(1)設計一個二值化方法將其轉變成黑白 圖像後,(2)繪出 QR code 黑色模組的外框(可利用 Sobel Operators 偵測即可)。

二、使用環境:

Visual Studio 2019
Python 3.7.6
OpenCV 4.2.0

三、實作方法:

  1. imread讀取成灰階圖片
  2. 兩張圖分別用adaptiveThresholdthreshold函數做二值化
  3. 兩張圖分別用LaplacianSobel函數處理邊緣偵測
  4. imshow輸出所有圖片
四、成果:
  • 二值化(:adaptiveThreshold、右:threshold)















  • 緣偵測(:Laplacian、右:Sobel)



2020年3月14日 星期六

1063332 影像處理作業 1


一、作業題目:


撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255<=v<=255),並將圖像儲存至一個新圖像檔案中。

二、使用環境:


  • Visual Studio 2019
  • OpenCV 4.2.0


三、實作方法:



  1.           imread讀取輸入的圖片
  2.        imshow顯示輸入的圖片
  3.        創建兩個trackbar (+v表示當v為正值、-v表示當v為負值)輸入v(-255~255)
  4.        at<Vec3b>訪問各通道像素,並改變像素值
  5.        imshow顯示改變後的圖片
  6.        imwrite輸出新圖片newdog.jpg存入原資料夾



四、結果顯示:


v輸入正值(+136):





v輸入負值(-103):

                                   
v輸入正值(+93):

                                 
 v輸入負值(-137):