パイソンJupyterノートで使用される画像をフィルタリングし、次のエッジ検出コードを達成するため、特定の機能を実行処理画像を達成するためのプロセスは、ビットラフであってもよいです。:を参照することができますOpenCVのライブラリにインストールOpenCVのライブラリと要約問題のいくつかの下でPythonのインストール。
まず、エッジ抽出
インポート CV2 #インポートOpenCVのライブラリ
#は、オリジナルのグラデーション画像の読み取り
画像cv2.imread =(「test.bmp 」)
cv2.imshow(「画像」、画像)#「画像」という名前の元の画像を表示されている
#の閾値画像を分割処理、画像処理が白黒二値画像に対して約ある
RET、画像1 = cv2.threshold(画像、80、255、cv2.THRESH_BINARY) #1 バイナリ(白黒2値)、代表RET閾値、低い閾値が80であり、 255は高閾値である
cv2.imshow(「画像1 」、画像1)#1 しきい値プロセス名「画像1」が表示された後、画像
#バイナリ画像の色反転、反転画像のピクセルの
高さ、幅= image1.shape #画像サイズに戻す
画像2 = image1.copy()
用 I における範囲(高さ)
のために J でレンジ(幅):
画像2 [I、J] =(255- 画像1 [I、J])
cv2.imshow(' 画像2 '、画像2) #処理後の反応色「画像2」という名前の画像を表示
#キャニー関数を使用してエッジ抽出を
image2_3 = cv2.Canny(image2,80,255) #の低閾値に設定80、高しきい値255
cv2.imshow(「image2_3 」、image2_3)#1 エッジ抽出画像は「image2_3」が表示されているという名前の後に
#エッジ抽出の再度カラー反転画像が黒であり、残りは、同じ方法で白画像2
height1、WIDTH1 = image2_3.shape
画像3 = image2_3.copy()
用 I における範囲(height1)
のための J で:(WIDTH1)レンジ
画像3 [I、J] =(255- image2_3 [I、J])
cv2.imshow(' 画像3 '、画像3) #逆カラーエッジ抽出後「画像3」という名前の画像が表示さ
cv2.waitKey(0) #のキーボード入力待ちを、無限の待機入力しないでください
(cv2.destroyAllWindowsを) #すべてのウィンドウを破壊します
結果:
第二に、画像フィルタ
インポートCV2
インポートnumpyの
インポートは、ASのPLTをmatplotlib.pyplot
から PIL インポート画像、ImageDraw、ImageFont
#絵に中国語の文字を追加するために
DEF ImgText_CN(IMG、テキスト、左、上、の、textColor =(0、255、0)、TEXTSIZE = 20 ):
のiF(でisinstance(IMG、numpy.ndarray)): #決定するかどうかOpenCVの画像タイプ
IMG = Image.fromarray(cv2.cvtColor(IMG、cv2.COLOR_BGR2RGB))
描画 = ImageDraw.Draw(IMG)
fontText = ImageFontを。 TrueTypeフォント(" フォント/ simhei.ttf "コード=、TEXTSIZE、" UTF-8 ")
Draw.text((上、左)、テキスト、の、textColor、フォント = fontText)
戻りcv2.cvtColor(numpy.asarray(IMG)、cv2.COLOR_RGB2BGR)
#は、元のグレースケール画像を読み取る
SRC = cv2.imread(" TEST2 .BMP " )
cv2.imshow(" SRC "SRC) #名前原画像" SRC "示さ
src_cn = ImgText_CN(SRC、" 原画像」、5、5、(255、0、0)、20 )
cv2.imshow(" src_cn "、src_cn) #"src_cn"という名前の追加のテキストSRCが表示され、
#平均フィルタ
デcv2.blur =(SRC、(5、5 ))
cv2.imshow("DES "DES) #名前SRC後の平均フィルタリング処理" DES "と表示
des_cn = ImgText_CN(DES、" 平均値フィルタ」、5 ,. 5、(255、0、0)、20である)
cv2.imshow(" des_cn "、des_cn) #追加テキストDESは"des_cn"と命名されて表示
#メディアンフィルタ
メッド= cv2.medianBlurを(SRC ,. 5 )
cv2.imshow(" メッド"、メッド)#メディアンフィルタ"のmed"と表示された名前のSRCの後
med_cn = ImgText_CNを(メッド、" メディアンフィルタリング"、5 ,. 5、(255、0、0)、20がある)
cv2.imshow(" med_cn "、med_cn) #追加テキストは、 "med_cn"と命名し、表示MED
#ガウス
ガウス= cv2.GaussianBlur(SRC、(5,5 )、0)
cv2.imshow(" ガウス"、ガウス)#ガウシアンフィルタ処理後のSRC "ガウス"という名前で表示
gauss_cn = ImgText_CN(ガウス、" ガウス"、5 ,. 5、(255、0、0)、20である)
cv2.imshow(" gauss_cn "、gauss_cn) #追加テキストガウス名付け"gauss_cn"と表示され
#ガウスエッジ検出
gaussedge = cv2.Canny(ガウス、0,50 )
cv2.imshow(" gaussedge "、gaussedge) #ガウス後端検出が"gaussedge"と命名され、表示れる処理
= ImgText_CN gaussedge_cn(gaussedge、" ガウスエッジ検出"、5 ,. 5、(0、255、0)、20である)
cv2.imshow(" gaussedge_cn "、gaussedge_cn) #が"gaussedge_cn"という名前のテキストgaussedgeを追加して表示
cv2.waitKey(0)
結果: