mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.0 KiB
52 lines
2.0 KiB
#!/usr/bin/python |
|
import sys |
|
import urllib2 |
|
import cv2.cv as cv |
|
|
|
src = 0 |
|
image = 0 |
|
dest = 0 |
|
element_shape = cv.CV_SHAPE_RECT |
|
|
|
def Opening(pos): |
|
element = cv.CreateStructuringElementEx(pos*2+1, pos*2+1, pos, pos, element_shape) |
|
cv.Erode(src, image, element, 1) |
|
cv.Dilate(image, dest, element, 1) |
|
cv.ShowImage("Opening & Closing", dest) |
|
def Closing(pos): |
|
element = cv.CreateStructuringElementEx(pos*2+1, pos*2+1, pos, pos, element_shape) |
|
cv.Dilate(src, image, element, 1) |
|
cv.Erode(image, dest, element, 1) |
|
cv.ShowImage("Opening & Closing", dest) |
|
def Erosion(pos): |
|
element = cv.CreateStructuringElementEx(pos*2+1, pos*2+1, pos, pos, element_shape) |
|
cv.Erode(src, dest, element, 1) |
|
cv.ShowImage("Erosion & Dilation", dest) |
|
def Dilation(pos): |
|
element = cv.CreateStructuringElementEx(pos*2+1, pos*2+1, pos, pos, element_shape) |
|
cv.Dilate(src, dest, element, 1) |
|
cv.ShowImage("Erosion & Dilation", dest) |
|
|
|
if __name__ == "__main__": |
|
if len(sys.argv) > 1: |
|
src = cv.LoadImage(sys.argv[1], cv.CV_LOAD_IMAGE_COLOR) |
|
else: |
|
url = 'http://code.opencv.org/projects/opencv/repository/revisions/master/raw/samples/c/fruits.jpg' |
|
filedata = urllib2.urlopen(url).read() |
|
imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1) |
|
cv.SetData(imagefiledata, filedata, len(filedata)) |
|
src = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_COLOR) |
|
|
|
image = cv.CloneImage(src) |
|
dest = cv.CloneImage(src) |
|
cv.NamedWindow("Opening & Closing", 1) |
|
cv.NamedWindow("Erosion & Dilation", 1) |
|
cv.ShowImage("Opening & Closing", src) |
|
cv.ShowImage("Erosion & Dilation", src) |
|
cv.CreateTrackbar("Open", "Opening & Closing", 0, 10, Opening) |
|
cv.CreateTrackbar("Close", "Opening & Closing", 0, 10, Closing) |
|
cv.CreateTrackbar("Dilate", "Erosion & Dilation", 0, 10, Dilation) |
|
cv.CreateTrackbar("Erode", "Erosion & Dilation", 0, 10, Erosion) |
|
cv.WaitKey(0) |
|
cv.DestroyWindow("Opening & Closing") |
|
cv.DestroyWindow("Erosion & Dilation")
|
|
|