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

2019年6月6日 星期四

s1053315作業五

一、作業要求:

請撰寫一個程式,利用數學型態學影像處理運算,計算出所附圖像共三張,列出每張圖像中圍棋個數。

二、使用環境/語言:

  • Windows 10
  • Spyder ( Python3.5 )
  • Python
  • Opencv 3.4.1
三、特殊程式片段註解:



  • 使用imread讀入圖片,並轉換為灰階圖
  • 用cvtColor()將圖片轉成灰階圖
  • 降低圖片雜訊:GaussianBlur()
  • 轉成二值化:threshould()
  • 偵測物件之邊緣:Sobel()索伯運算子
  • 找出物件之輪廓、計算數量:findContours()





四、環境設置介紹:

       首先下載 Anaconda 後將其路徑加入到path,以免python無法正確運行。
Anaconda cloud server中搜尋要安裝的package
在cmd中輸入: anaconda search opencv



      挑選一個覺得順眼以及符合系統需求的package 輸入:conda install -c https://conda.anaconda.org/package名稱 下載完畢開啟Spyder即可

五、執行結果:


IMG1:


IMG2:


IMG3:


偵測結果:



2019年5月16日 星期四

s1053315作業四

一、作業要求:


Skin Color Detection
利用你所學的顏色的知識,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。

二、使用環境/語言:

  • Windows 10
  • Spyder ( Python3.5 )
  • Python
  • Opencv 3.4.1
三、特殊程式片段註解:

  • 使用imread讀入圖片
  • RGB顏色空間轉換到YCbCr顏色空間
  • YCbCr顏色空間中的像素做一系列的變換後使得在YCbCr空間中的膚色空間更加易於操作




四、環境設置介紹:

       首先下載 Anaconda 後將其路徑加入到path,以免python無法正確運行。
Anaconda cloud server中搜尋要安裝的package
在cmd中輸入: anaconda search opencv



      挑選一個覺得順眼以及符合系統需求的package 輸入:conda install -c https://conda.anaconda.org/package名稱 下載完畢開啟Spyder即可

五、執行結果:





2019年5月15日 星期三

s1053315作業三

一、作業要求:

請撰寫一個程式,讀取一張 256 色灰階圖像。計算輸入圖的離散傅立葉轉換結果,並
將頻譜大小與相位角度各以灰階256 色圖像方式呈現出。


二、使用環境/語言:

  • Windows 10
  • Spyder ( Python3.5 )
  • Python
  • Opencv 3.4.1
三、特殊程式片段註解:
np.fft.fft2()
np:輸入影像,為灰度影像
fft:決定了輸出陣列的大小,如果它大於輸入影象的大小,則輸入影象在計算FFT之前填充了0.如果它小於輸入影象,輸入影象將被裁剪。
如果沒有引數傳遞,輸出陣列的大小將與輸入相同。


四、環境設置介紹:

       首先下載 Anaconda 後將其路徑加入到path,以免python無法正確運行。
Anaconda cloud server中搜尋要安裝的package
在cmd中輸入: anaconda search opencv



      挑選一個覺得順眼以及符合系統需求的package 輸入:conda install -c https://conda.anaconda.org/package名稱 下載完畢開啟Spyder即可

五、執行結果:







2019年3月28日 星期四

s1053315 作業二

一、作業要求:

邊緣偵測與製作線條自畫像撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可) ,利用 Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片 由 RGB 轉換至 HIS 或 YUV, YCbCr 等色彩空間,只需對亮度 Channel I 或 Y 處理,再 轉回 RGB 即可),設計一個類似素描線條自畫像程式。

二、使用環境/語言:

  • Windows 10
  • Spyder ( Python3.5 )
  • Python
  • Opencv 3.4.1
三、特殊程式片段註解:

1.用Sobel Operators偵測圖像邊緣:

dst = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])

前四個是必須的參數:
第一個參數是需要處理的圖像;
第二個參數是圖像的深度,-1表示採用的是與原圖像相同的深度。目標圖像的深度必須大於

等於原圖像的深度;
dx和dy表示的是求導的階數,0表示這個方向上沒有求導,一般為0、1、2。
其後是可選的參數:ksize是Sobel算子的大小,必須為1、3、5、7。

scale是縮放導數的比例常數,默認情況下沒有伸縮係數;

delta是一個可選的增量,將會加到最終的dst中,同樣,默認情況下沒有額外的值加到dst中

borderType是判斷圖像邊界的模式。這個參數默認值為cv2.BORDER_DEFAULT。

2.使用cv2.CV_16S換成16位有符號的數據類型:

在Sobel函數的第二個參數這裡使用了cv2.CV_16S。因為OpenCV文檔中對Sobel算子的介紹

中有這麼一句:“in the case of 8-bit input images it will result in truncated

derivatives”。即Sobel函數求完導數後會有負值,還有會大於255的值。而原圖像是

uint8,即8位無符號數,所以Sobel建立的圖像位數不夠,會有截斷。因此要使用16位有符

號的數據類型,即cv2.CV_16S。

在經過處理後,別忘了用convertScaleAbs()函數將其轉回原來的uint8形式。否則將無法顯

示圖像,而只是一副灰色的窗口。

3.用cv2.addWeighted(...)函數將x方向和y方向組合起來:

dst = cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])

其中alpha是第一幅圖片中元素的權重,beta是第二個的權重,gamma是加到最後結果上的

一個值。

四、環境設置介紹:

       首先下載 Anaconda 後將其路徑加入到path,以免python無法正確運行。
Anaconda cloud server中搜尋要安裝的package
在cmd中輸入: anaconda search opencv



      挑選一個覺得順眼以及符合系統需求的package 輸入:conda install -c https://conda.anaconda.org/package名稱 下載完畢開啟Spyder即可

五、執行結果:

由左至右依序為:原圖、x方向處理結果、y方向處理結果、x+y方向處理結果




六、參考資料:

2019年3月18日 星期一

s1053315 作業一

一、作業要求:

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

二、使用環境/語言:

  • Windows 10
  • Spyder ( Python3.5 )
  • Python
  • Opencv 3.4.1
三、特殊程式片段註解:
  • 用np.clip()函數將數據限定來防止計算出來的圖像像素值溢出
  • 使用createTrackbar來創造滑桿

  • lst = 1*img[i, j] + bnum  , 以bnum來做為調整亮度的數值,前面的1為調整對比度
  • 使用np.hstack((img, cimg))來合併圖片以便對比
  • 使用imread讀取圖片,imwrite存取圖片


四、環境設置介紹:
       首先下載 Anaconda 後將其路徑加入到path,以免python無法正確運行。

在cmd中輸入: anaconda search opencv

      挑選一個覺得順眼以及符合系統需求的package
輸入:conda install -c https://conda.anaconda.org/package名稱
下載完畢開啟Spyder即可

五、執行結果:


亮度調整是將圖像像素的強度整體變大/變小,對比度調整指的是圖像暗處的像素強度變低,亮出的變高,從而拓寬某個區域內的顯示精度。


OpenCV中亮度和對比度應用這個公式來計算:g(x) = αf(x) + β,其中:α(>0)、β常稱為增益與偏置值,分別控製圖片的對比度和亮度。

當亮度增加設為0時,與原圖無異


當亮度增加設為86時

當亮度增加設為128時


當亮度增加設為-128時


使用imwrite存取圖片為"OUTPUT"


六、參考資料:

  1. https://zhuanlan.zhihu.com/p/44813768
  2. https://blog.gtwang.org/programming/opencv-basic-image-read-and-write-tutorial/