OpenCVの共通の基本的な処理機能(6)画像勾配

形態学的変換

腐食

IMG = cv2.imread(' j.png '0 
カーネル = np.ones((55 )、np.uint8)
浸食 = cv2.erode(IMG、カーネル、反復= 1

うねり

拡張= cv2.dilate(IMG、カーネル、反復回数= 1

高度な腐食さらなる拡大がオープン操作と呼ばれています。私たちは、上記と同じように、ノイズを除去するために使用されます。ここでは、関数を使用するcv2.morphologyExは()です。

開口= cv2.morphologyEx(IMG、cv2.MORPH_OPEN、カーネル)

 

画像勾配

勾配は、画素の大きな変化のエッジは、エッジ位置を導出することによって決定することができる場合、次いで即ち、画素の導出のための分布曲線単に誘導体です。

ソーベル、ラプラシアンScharr:OpenCVのは、3つの異なる勾配フィルタ、またはハイパスフィルタを提供します

ソーベル、Scharr実際には、第一または第二の導関数を求めています。Scharrは、ソーベルの最適化(畳み込みカーネル小さな勾配角ソリューションソリューションを使用して)されます。ラプラシアンは、二次導関数です。

ラプラシアン= cv2.Laplacian(IMG、cv2.CV_64F)
sobelx = cv2.Sobel(IMG、cv2.CV_64F、1,0、ksize = 5)
sobely = cv2.Sobel(IMG、cv2.CV_64F、0,1、ksize = 5)

効果はのようになります。

キャンディエッジ検出

1.ノイズを除去し、ガウシアンカーネル

2.計算勾配

3.操作

4.非極大値抑制

5.セット2が閾値(階調勾配画像がMAXVAL真の境界よりも高くなることが考えられ、それを介して、この時点でされた場合に破棄されるMINVAL以下境界かどうかに依存します真の境界点に接続されているとして同定された、あなたが思うならば、それはまた、ある境界点、放棄されていない場合)

cv2.Canny(によって実行OpenCVの)では、この関数の最初のパラメータは、入力された画像です。第二及び第三のMINVALとMAXVALあります。第三のパラメータは、畳み込みカーネルソーベル勾配画像の大きさを計算するために使用され、デフォルト値は3です。最後のパラメータはL2gradientあり、勾配の大きさの需要方程式を設定するために使用することができます。Trueに設定した場合、我々は、それ以外の式を持っていた上記の式を使用します。_Gradient \ \エッジ。 (G)= | G_x |  + | G_y |その代わり、デフォルトはFalseです。

例えば:

エッジ= cv2.Canny(IMG、100,200)

 

おすすめ

転載: www.cnblogs.com/ywheunji/p/10990150.html