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

2019年6月5日 星期三

1051527作業五

一、作業題目:


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

圍棋個數。

a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋

子數量的螢幕截圖。

b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!


二、執行環境:

windows 10  ,  opencv-4.0  ,  Spyder(Python-3.7)。

三、程式撰寫:

一開始用imread把圖片用灰階的型態讀進來,利用GaussianBlur()來去除雜訊,再利用morphologyEx()轉成open的形態可以去除棋子上的反光,之後再利用threshold()去把他轉成二值化,再利用Sobel()去檢測邊緣輪廓,最後用findContours()去找她有幾個,contourArea()去算他邊緣連起來的面積,若大於10就為一個棋子了。

四、程式展現:

開啟檔案可以找到做完存的檔案分別為(1.jpg , 2.jpg , 3.jpg分別對應)













IMG_5702.JPG做完後的結果:

















IMG_5703.JPG做完後的結果:

















IMG_5704.JPG做完後的結果:
輸出結果:(發現若面積>200000可能是兩個黑棋重疊故再加一顆黑棋)






2019年5月15日 星期三

1051527作業四

一、作業題目:

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

二、執行環境:

windows 10  ,  opencv-4.0  ,  Spyder(Python-3.7)。

三、程式撰寫:

一開始把老師給的圖片讀取,並且創一個空間利用copy()去存取原圖,方便後來比較,再利用cvtColor()把原圖的rgb轉換成hsv,並取把每一行列的pixel去判斷是否為皮膚,若是皮膚顯示skin變數為1,讓之後可以顯示出來,之後再利用subplot將結果印出來,可以在資料夾找到找到做過皮膚偵測的圖。

四、程式展現:


2019年5月14日 星期二

1051527作業三

一、作業題目:

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

二、執行環境:

windows 10  ,  opencv-4.0  ,  Spyder(Python-3.7)。

三、程式撰寫:

一開始會先請使用者輸入圖片的名子,錯誤就不會開啟直到輸入對為止(格式xxx.jpg),把圖片讀進來後利用fft()做傅立葉轉換,再利用fftshift()做中心化,再利用取log()讓他沒有複數取得頻譜,再對做過傅立葉轉換的圖片取angle()就可以得到phase圖了,而之後也可以利用逆轉換先對取過angle的圖片做中心化再傅立葉轉換回來,之後怕有複數再處理後,就可以得到原圖了,之後利用plt.subplot()排圖,則就可以得到4張圖片。

四、程式展現:

錯誤輸入:












輸入正錯則輸出四張圖:



2019年3月31日 星期日

1051527作業二

一、作業題目:

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

二、執行環境:

windows 10  ,  opencv-4.0  ,  Spyder(Python-3.7)。

三、程式撰寫:

一開始先請你輸入要開啟的檔名,若檔名錯誤會叫你重新輸入,檔名對了就用imread開啟圖檔(使用方法為在此資料夾找符合的檔案),之後使用Sobel()函數得到x和y(即是垂直和水平)的一階梯度,在來使用convertScaleAbs()函數將其轉回原來的uint8形式,再來使用addWeighted()把垂直和水平的合在一張圖上,就為我們要的素描圖,再利用imwrite()存成一個output.jpg檔。

四、程式展現:

(一)
輸入錯誤:








輸入正確則跑出圖檔:












(二)
輸出素描檔:

















(三)
存成output.jpg:



2019年3月20日 星期三

1051527 作業一

一、作業題目:

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

二、執行環境:

windows 10  ,  opencv-3.4.0_vc14  ,  Spyder(Python-3.7)。

三、程式撰寫:

一開始先import cv2進我的檔案裡才可以使用裡面函數庫,會跳出輸入當名,而之後用os.path.exists()去判斷在此路徑下有沒有所輸入的圖檔,如果沒有會顯示再輸入直到輸入到正確,正確會顯示原圖(利用cv2.imread()讀,cv2.imshow()顯示,cv2.waitKey(0)讓他可以在桌面停留),之後會顯示你所想要調亮或調暗輸入數值(利用np.uint8(np.clip((1.5 * img + num), 0, 255))讓他去轉換),之後把改過的圖顯示出來並用cv2.imwrite()把它存成一張output.jpg,就為亮度調整過的圖。

四、程式展現:

(一)、
輸入錯誤:












正確則顯示圖片:










(二)、
輸入數值(-255<=v<=255):
超出範圍會要求重新輸入:



















在範圍內(亮度增加30,上圖為改變後):


















亮度減少60,上圖為改變後:


















(三)、
改變後的圖,存成output.jpg: