opencv學習筆記(17)開閉操作

2021-10-20 22:49:32 字數 3718 閱讀 5481

閉操作(close)

**api使用及效果

示例用圖:

1.影象形態學的重要操作之一,基於膨脹與腐蝕操作組合形成的。

2.主要是應用在二值影象分析中,灰度影象亦可。

3.開操作=腐蝕+膨脹,輸入影象+結構元素。

1.消除影象中小的干擾區域,消除3×3、5×5或更大的噪點。

2.水平或者垂直線提取。

1.影象形態學的重要操作之一,基於膨脹與腐蝕操作組合形成的。

2.主要是應用在二值影象分析中,灰度影象亦可。

3.開操作=膨脹+腐蝕,輸入影象+結構元素。

1.填充小的封閉區域。

2.水平或者垂直線提取。

#coding=utf-8

import cv2 as cv

import numpy as np

defopen_demo

(image)

:print

(image.shape)

gray = cv.cvtcolor(image,cv.color_bgr2gray)

ret,binary = cv.threshold(gray,0,

255,cv.thresh_binary | cv.thresh_otsu)

cv.imshow(

"binary"

,binary)

kernel = cv.getstructuringelement(cv.morph_rect,(3

,3))

binary = cv.morphologyex(binary,cv.morph_open,kernel)

cv.imshow(

"open-result"

,binary)

defclose_demo

(image)

:print

(image.shape)

gray = cv.cvtcolor(image,cv.color_bgr2gray)

ret,binary = cv.threshold(gray,0,

255,cv.thresh_binary | cv.thresh_otsu)

cv.imshow(

"binary"

,binary)

kernel = cv.getstructuringelement(cv.morph_rect,(3

,3))

binary = cv.morphologyex(binary,cv.morph_close,kernel)

cv.imshow(

"close_result"

,binary)

scr = cv.imread(

"d:/academic/picture/opencv_data/123.png"

)cv.imshow(

"input image"

,scr)

#open_demo(scr)

#close_demo(scr)

cv.waitkey(0)

cv.destroyallwindows(

)

可以看到,紅圈內的許多小白點沒有了,變成了黑色。

可以看到,這次是紅圈內的小黑點沒有了,被填充成了白色。

#coding=utf-8

import cv2 as cv

import numpy as np

defopen_demo

(image)

:print

(image.shape)

gray = cv.cvtcolor(image,cv.color_bgr2gray)

ret,binary = cv.threshold(gray,0,

255,cv.thresh_binary_inv | cv.thresh_otsu)

cv.imshow(

"binary"

,binary)

kernel = cv.getstructuringelement(cv.morph_rect,(1

,5))

binary = cv.morphologyex(binary,cv.morph_open,kernel)

cv.imshow(

"open-result"

,binary)

scr = cv.imread(

"d:/academic/picture/opencv_data/line.png"

)cv.imshow(

"input image"

,scr)

open_demo(scr)

cv.waitkey(0)

cv.destroyallwindows(

)

**部分並沒有很大改變,無疑就是把kernel的size變成了(1,5),看看效果:

可以看到,橫線沒了。

如果kernel的size取(5,1),就會是豎線消失,橫線保留,如圖:

)當改變核心形狀時,還能達到提取圓的效果:

(自己確實找不到圖了,在別人的部落格偷了一張來,侵刪)

來自:opencv學習筆記-開閉操作

OpenCV學習記錄17

一 學習內容 1 除錯sobel邊緣檢測 1.1 分別生成水平方向和豎直方向的梯度影象 1.2 合成總梯度影象 1.3 呼叫函式addweighted生成總梯度影象 備註 由於邊緣檢測運算元對雜訊敏感,因此在邊緣檢測之前必須用高斯模糊對影象降噪,然後轉換成灰度影象,再進行邊緣檢測。二 除錯 incl...

開閉原則 學習筆記

開閉原則 軟體物件 類 模組 方法等 應該對於擴充套件是開放的,對修改是關閉的。比如 乙個網路模組,原來只有服務端功能,而現在要加入客戶端功能,那麼應當在不用修改服務端功能 的前提下,就能夠增加客戶端功能的實現 這要求在設計之初,就應當將客戶端和服務端分開。公共部分抽象出來。問題由來 在軟體的生命週...

1 7opencv學習筆記形態學操作

一.形態學操作 1 開操作 open 先腐蝕後膨脹,可以去掉小的物件。2 閉操作 close 先腐蝕後膨脹,可以填充小的洞 fill hole 3 形態學梯度 morphological gradient 膨脹減去腐蝕,又稱為基本梯度 其它還包括 內部梯度 方向梯度 4 頂帽 top hat 頂帽 ...