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

2019年6月4日 星期二

1051432 作業五

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

二、作業環境:

  • windows10
  • visual studio 2017  
  • opencv 3.4.1
三、程式架構:
  1. threshold設定圖像二值化的閥值
  2. 用bitwise_not()進行顏色的反轉
  3. 用morphologyEx、erode、dilate做腐蝕、膨脹和開運算,調整參數到能最有效的分割圍棋邊界
  4. 用findContours找出共有幾個輪廓,就可知道圍棋個數
四、成果展示:
  • 第一張圖片:
  • 結果:22個圍棋(正確為24個)


  • 第二張圖片:
  • 結果:30個圍棋(正確為31個)

  • 第三張圖片:
  • 結果:31個圍棋(正確為31個)

2019年5月13日 星期一

1051432 作業四

一、作業要求
利用的顏色的知識 ,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出 。

二、作業環境:

  • windows10
  • visual studio 2017  
  • opencv 3.4.1
三、程式架構:
  1. 按照所選圖片類型隨機從分類中選取一張圖片
  2. 選擇要轉換為YCrCb偵測膚色或是RGB偵測膚色
  3. 用老師給的paper還有網路上參考的資料設定皮膚像素顏色的條件,是的話設為白色或原圖顏色,不是的話設為黑色
  4. 自訂YCrCb2RGB,讓YCrCb轉換回來時白色維持白色,黑色維持黑色
  5. 輸出二值化結果及膚色原圖結果
四、成果展示:

  • 圖片類型:1 色彩轉換空間:YCrCb
  • 右上:原圖, 左下:二值圖, 右下:皮膚原色圖

  • 圖片類型:1 色彩轉換空間:RGB
  • 右上:原圖, 左下:二值圖, 右下:皮膚原色圖

  • 圖片類型:2 色彩轉換空間:YCrCb
  • 左:原圖  中:二值圖  右:膚色原圖 

  • 圖片類型:2 色彩轉換空間:RGB
  • 左:原圖  中:二值圖  右:膚色原圖

  • 圖片類型:3 色彩轉換空間:YCrCb
  • 左:原圖  中:二值圖  右:膚色原圖

  • 圖片類型:3 色彩轉換空間:RGB
  • 左:原圖  中:二值圖  右:膚色原圖


2019年5月12日 星期日

1051432 作業三

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

二、作業環境:
  • windows10
  • visual studio 2017  
  • opencv 3.4.1
三、程式架構:
  1. 先用copyMakeBorder()對圖片做邊界擴展
  2. 將圖片merge()變為多通道的Mat
  3. dft()進行傅立葉轉換
  4. split()取出實數部分
  5. 取出實數部分,並用magnitude()計算出振幅、用phase()計算出相位角度
  6. normalize()將值進行標準化
  7. 將圖切成四個部分,再用temp對它們進行互換
  8. 輸出頻譜圖、相位圖
  9. idft()將圖片用逆傅立葉轉換回來
  10. 輸出逆傅立葉轉換的圖
四、成果展示:
  • magnitude為頻譜圖
  • phase為相位圖
  • ifft為逆傅立葉轉換的圖

2019年4月3日 星期三

1051432 作業二

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


二、作業環境:

  • windows10
  • visual studio 2017  
  • opencv 3.4.1


三、程式片段:

  • cvtColor():先將BGR轉成YCrCb
  • split():將Y、Cr、Cb進行切割,再將Y取出來進行運算
  • Sobel():分別找出對X微分及對Y微分後的輪廓
  • convertScaleAbs():將圖片的像素深度轉換為CV_8U
  • GaussianBlur():去除雜訊
  • addWeighted():將對X及對Y微分的圖片相加
  • threshold():設定閥值,閥值以下設為零
四、成果展示:
  • img0為原圖
  • img1為Y值的圖
  • img2為轉換為RGB後的圖


2019年3月18日 星期一

1051432 作業一

實作方法:
透過cvLoadImage來load RGB圖片,把他轉成Mat型態後再用Mat的函數at來調整像素值,並用saturate_cast<uchar>來防止像素超出範圍。最後用cvShowImage顯示修改後圖片並用imwrite儲存圖片。

作業環境
windows10  visual studio 2017  opencv 3.4.1

執行方式

選擇要使用的調整方式:1手動、2自動







手動:使用者可自行選擇要調整的像素值,在-255~255之間。
-100

+100

























自動:計算出圖片像素的平均值,再根據他與像素值128的差來進行像素亮度的加減。