閉操作(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 頂帽 ...