def redraw(self):
     
     edge_img = cv.Mat()
     # 边缘检测
     cv.Canny(self.img_gray, edge_img, self.th1, self.th2)
     3###
     # 计算结果图
     if self.show_canny: 
         show_img = cv.Mat()
         cv.cvtColor(edge_img, show_img, cv.CV_GRAY2BGR)
     else:
         show_img = self.img.clone()
     4### 
     # 线段检测   
     theta = self.theta / 180.0 * np.pi
     lines = cv.HoughLinesP(edge_img,  
         self.rho, theta, self.hough_th, self.minlen, self.maxgap)
     for line in lines: 
         cv.line(show_img, 
             cv.asPoint(line[:2]),  
             cv.asPoint(line[2:]),
             cv.CV_RGB(255, 0, 0), 2)
     5###
     # 圆形检测
     circles = cv.HoughCircles(self.img_smooth, 3,  
         self.dp, self.mindist, param1=self.param1, param2=self.param2)
         
     for circle in circles: 
         cv.circle(show_img, 
             cv.Point(int(circle[0]), int(circle[1])), int(circle[2]), 
             cv.CV_RGB(0, 255, 0), 2)
     
     cv.imshow("Hough Demo", show_img)
Ejemplo n.º 2
0
 def redraw(self):
     # 同时显示两幅图像
     w = self.img1.size().width
     h = self.img1.size().height
     show_img = cv.Mat(cv.Size(w*2, h), cv.CV_8UC3)
     for i in xrange(3):
         show_img[:,:w,i] = self.img1[:]
         show_img[:,w:,i] = self.img2[:]
     
     # 绘制特征线条
     if self.draw_circle:
         self.draw_keypoints(show_img, self.keypoints1, 0)
         self.draw_keypoints(show_img, self.keypoints2, w)
     
     
     # 绘制直线连接距离小于阈值的两个特征点
     for idx1 in np.where(self.mindist < self.max_distance)[0]:  
         idx2 = self.idx_mindist[idx1]
         pos1 = self.keypoints1[int(idx1)].pt  
         pos2 = self.keypoints2[int(idx2)].pt
         
         p1 = cv.Point(int(pos1.x), int(pos1.y)) 
         p2 = cv.Point(int(pos2.x)+w, int(pos2.y)) 
         cv.line(show_img, p1, p2, cv.CV_RGB(0,255,255), lineType=16)
     
     
     cv.imshow("SURF Demo",show_img)
    def __init__(self, **traits):
        super(HistDemo, self).__init__(**traits)
        img = cv.imread("lena.jpg")
        gray_img = cv.Mat()
        cv.cvtColor(img, gray_img, cv.CV_BGR2GRAY)
        self.img = gray_img
        self.img2 = self.img.clone()
        result = cv.MatND()

        r = cv.vector_float32([0, 256])
        ranges = cv.vector_vector_float32([r, r])

        cv.calcHist(
            cv.vector_Mat([self.img]),
            channels=cv.vector_int([0, 1]),
            mask=cv.Mat(),
            hist=result,
            histSize=cv.vector_int([256]),
            ranges=ranges,
        )

        data = ArrayPlotData(x=np.arange(0, len(result[:])), y=result[:])
        self.plot = Plot(data, padding=10)
        line = self.plot.plot(("x", "y"))[0]
        self.select_tool = RangeSelection(line, left_button_selects=True)
        line.tools.append(self.select_tool)
        self.select_tool.on_trait_change(self._selection_changed, "selection")
        line.overlays.append(RangeSelectionOverlay(component=line))

        cv.imshow("Hist Demo", self.img)

        self.timer = Timer(50, self.on_timer)
 def redraw(self):
     M = cv.asMat(self.m, force_single_channel=True)
     size = cv.Size(int(self.size[0,0]), int(self.size[0,1]))
     img2 = cv.Mat()
     if size.width > 0 and size.height > 0:
         cv.warpAffine(self.img, img2, M, size, borderValue=cv.CV_RGB(255,255,255))
         cv.imshow("Affine Demo", img2)
 def redraw(self):
     src = cv.asvector_Point2f(self.src)
     dst = cv.asvector_Point2f(self.dst)
     m = cv.getPerspectiveTransform(src, dst)
     print m
     img2 = cv.Mat()
     cv.warpPerspective(self.img, img2, m, self.img.size())
     cv.imshow("Perspective Demo", img2)
Ejemplo n.º 6
0
 def redraw(self):
     src = cv.asvector_Point2f(self.src)
     dst = cv.asvector_Point2f(self.dst)
     m = cv.getPerspectiveTransform(src, dst)
     print m
     img2 = cv.Mat()
     cv.warpPerspective(self.img, img2, m, self.img.size())
     cv.imshow("Perspective Demo", img2)
Ejemplo n.º 7
0
 def on_timer(self):
     if self.need_update:
         x0, x1 = self.select_tool.selection
         self.img2[:] = self.img[:]
         np.clip(self.img2[:], x0, x1, out=self.img2[:])
         self.img2[:] -= x0
         self.img2[:] *= 256.0 / (x1 - x0)
         cv.imshow("Hist Demo", self.img2)
         self.need_update = False
 def on_timer(self):
     if self.need_update:
         x0, x1 = self.select_tool.selection
         self.img2[:] = self.img[:]
         np.clip(self.img2[:], x0, x1, out=self.img2[:])
         self.img2[:] -= x0
         self.img2[:] *= 256.0 / (x1 - x0)
         cv.imshow("Hist Demo", self.img2)
         self.need_update = False
Ejemplo n.º 9
0
def show_video(fileorid):
    cv.namedWindow(str(fileorid), cv.CV_WINDOW_AUTOSIZE)
    video = cv.VideoCapture(fileorid) 
    img = cv.Mat() 
    img2 = cv.Mat()    
    while video.grab():     
        video.retrieve(img, 0) 
        #cv.cvtColor(img, img2, cv.CV_GBR2RGB)
        cv.imshow(str(fileorid), img)
        cv.waitKey(5)
Ejemplo n.º 10
0
def show_video(fileorid):
    cv.namedWindow(str(fileorid), cv.CV_WINDOW_AUTOSIZE)
    video = cv.VideoCapture(fileorid) 
    img = cv.Mat() 
    img2 = cv.Mat()    
    while video.grab():     
        video.retrieve(img, 0) 
        #cv.cvtColor(img, img2, cv.CV_GBR2RGB)
        cv.imshow(str(fileorid), img)
        cv.waitKey(5)
Ejemplo n.º 11
0
 def redraw(self):
     img2 = cv.Mat()
     element = cv.asMat(self.structing_element, force_single_channel=True)
     if self.process_type.startswith("MORPH_"):
         type = getattr(cv, self.process_type)
         cv.morphologyEx(self.img, img2, type, element, iterations=self.iter)
     else:
         func = getattr(cv, self.process_type)
         func(self.img, img2, element, iterations=self.iter)
         
     cv.imshow("Morphology Demo", img2)
 def redraw(self):
     img2 = cv.Mat()
     element = cv.asMat(self.structing_element, force_single_channel=True)
     if self.process_type.startswith("MORPH_"):
         type = getattr(cv, self.process_type)
         cv.morphologyEx(self.img, img2, type, element, iterations=self.iter)
     else:
         func = getattr(cv, self.process_type)
         func(self.img, img2, element, iterations=self.iter)
         
     cv.imshow("Morphology Demo", img2)
Ejemplo n.º 13
0
 def redraw(self):
     M = cv.asMat(self.m, force_single_channel=True)
     size = cv.Size(int(self.size[0, 0]), int(self.size[0, 1]))
     img2 = cv.Mat()
     if size.width > 0 and size.height > 0:
         cv.warpAffine(self.img,
                       img2,
                       M,
                       size,
                       borderValue=cv.CV_RGB(255, 255, 255))
         cv.imshow("Affine Demo", img2)
    def redraw(self):
        def func(x, y):
            return eval(self.surf_func, globals(), locals())

        try:
            self.map1[:], self.map2[:] = make_surf_map(func, self.range, self.w, self.h, self.view_height)
        except SyntaxError:
            return
        if self.grid:
            img = self.gridimg
        else:
            img = self.img
        cv.remap(img, self.dstimg, self.map1, self.map2, cv.INTER_LINEAR)
        cv.imshow("Remap Demo", self.dstimg)
Ejemplo n.º 15
0
 def redraw(self):
     def func(x, y):
         return eval(self.surf_func, globals(), locals())        
     
     try:
         self.map1[:], self.map2[:] = make_surf_map(
                 func, self.range, self.w, self.h, self.view_height)
     except SyntaxError:
         return
     if self.grid:
         img = self.gridimg
     else:
         img = self.img
     cv.remap(img, self.dstimg, self.map1, self.map2, cv.INTER_LINEAR)
     cv.imshow("Remap Demo", self.dstimg)
Ejemplo n.º 16
0
def mouse_call_back(event, x, y, flags, user_data):
    global seed

    # 右键松开时,初始化种子图像
    if event == cv.CV_EVENT_RBUTTONUP:
        img2[:] = img[:]
        markers[:] = 0
        seed = 1
        cv.imshow("Watershed Demo", img2)

    if seed == len(marks_color): return

    # 左键按下时,在种子图像上添加种子
    if flags == cv.CV_EVENT_FLAG_LBUTTON:
        pt = cv.Point(x, y)
        cv.circle(markers, pt, 5, cv.Scalar(seed, seed, seed, seed),
                  cv.CV_FILLED)
        cv.circle(img2, pt, 5, marks_color[seed], cv.CV_FILLED)
        cv.imshow("Watershed Demo", img2)

    # 左键松开时,使用watershed进行图像分割
    if event == cv.CV_EVENT_LBUTTONUP:
        seed += 1
        tmp_markers = markers.clone()
        cv.watershed(img, tmp_markers)
        color_map = tmp_markers[:].astype(np.int)

        img3 = img2.clone()
        img4 = cv.asMat(palette[color_map])
        cv.addWeighted(img3, 1.0, img4, mask_opacity, 0, img3)
        cv.imshow("Watershed Demo", img3)
def mouse_call_back(event, x, y, flags, user_data):
    global seed
    
    # 右键松开时,初始化种子图像
    if event == cv.CV_EVENT_RBUTTONUP: 
        img2[:] = img[:]    
        markers[:] = 0
        seed = 1
        cv.imshow("Watershed Demo", img2)
        
    if seed == len(marks_color): return
    
    # 左键按下时,在种子图像上添加种子
    if flags == cv.CV_EVENT_FLAG_LBUTTON: 
        pt = cv.Point(x, y)
        cv.circle(markers, pt, 5, cv.Scalar(seed,seed,seed,seed), cv.CV_FILLED)
        cv.circle(img2, pt, 5, marks_color[seed], cv.CV_FILLED)
        cv.imshow("Watershed Demo", img2)
        
    # 左键松开时,使用watershed进行图像分割
    if event == cv.CV_EVENT_LBUTTONUP:  
        seed += 1
        tmp_markers = markers.clone() 
        cv.watershed(img, tmp_markers)
        color_map = tmp_markers[:].astype(np.int) 
        
        img3 = img2.clone()
        img4 = cv.asMat( palette[color_map] ) 
        cv.addWeighted(img3, 1.0, img4, mask_opacity, 0, img3) 
        cv.imshow("Watershed Demo", img3)
Ejemplo n.º 18
0
import numpy as np
import pyopencv as cv2

# Load an color image in grayscale
img = cv2.imread('IMG.jpeg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('1.png', img)
Ejemplo n.º 19
0
# -*- coding: utf-8 -*-
import pyopencv as cv
import numpy as np

y, x = np.ogrid[-1:1:250j, -1:1:250j]
z = np.sin(10 * np.sqrt(x * x + y * y)) * 0.5 + 0.5
np.round(z, decimals=1, out=z)

img = cv.asMat(z)

cv.namedWindow("demo1")
cv.imshow("demo1", img)

img2 = cv.Mat()
cv.Laplacian(img, img2, img.depth(), ksize=3)

cv.namedWindow("demo2")
cv.imshow("demo2", img2)
cv.waitKey(0)
Ejemplo n.º 20
0
# -*- coding: utf-8 -*-
import pyopencv as cv
import numpy as np

y, x = np.ogrid[-1:1:250j,-1:1:250j]
z = np.sin(10*np.sqrt(x*x+y*y))*0.5 + 0.5 
np.round(z, decimals=1, out=z) 

img = cv.asMat(z) 

cv.namedWindow("demo1")
cv.imshow("demo1", img)

img2 = cv.Mat() 
cv.Laplacian(img, img2, img.depth(), ksize=3) 

cv.namedWindow("demo2")
cv.imshow("demo2", img2)
cv.waitKey(0)
# -*- coding: utf-8 -*-
import pyopencv as cv
import numpy as np

img = cv.imread("lena.jpg")
size = img.size()
w, h = size
img2 = cv.Mat()
map1, map2 = np.meshgrid(
    np.linspace(0,w*2,w).astype(np.float32),
    np.linspace(0,h*2,h).astype(np.float32),
)
map1 = cv.asMat(map1)
map2 = cv.asMat(map2)
cv.remap(img, img2, map1, map2, cv.INTER_LINEAR)

cv.namedWindow( "Remap Resize", cv.CV_WINDOW_AUTOSIZE )
cv.imshow("Remap Resize", img2)
cv.waitKey(0)

Ejemplo n.º 22
0
    # create a correspond Mat
    correspond = cv.Mat(image.rows+object.rows, image.cols, cv.CV_8UC1, cv.Scalar(0))
    
    # copy the images to correspond -- numpy way
    correspond[:object.rows, :object.cols] = object[:]
    correspond[object.rows:, :image.cols] = image[:]

    # find pairs
    ptpairs = findPairs(surf, objectKeypoints, objectDescriptors, imageKeypoints, imageDescriptors)

    for pair in ptpairs:
        cv.line( correspond, cv.asPoint(pair[0]), cv.Point(int(pair[1].x), int(pair[1].y+object.rows)), colors[8] )

    # locate planar object
    if locatePlanarObject( ptpairs, src_corners, dst_corners ):
        for i in range(4):
            r1 = dst_corners[i]
            r2 = dst_corners[(i+1)%4]
            cv.line( correspond, cv.Point(r1.x, r1.y+object.rows ), cv.Point(r2.x, r2.y+object.rows ), colors[8] )

    # show the object correspondents
    cv.imshow("Object Correspond", correspond)
    
    # draw circles
    for keypt in objectKeypoints:
        cv.circle(object_color, cv.asPoint(keypt.pt), int(keypt.size*1.2/9.*2), colors[0], 1, 8, 0)
    cv.imshow("Object", object_color)
        
    cv.waitKey(0)
    
Ejemplo n.º 23
0
def Dilation(pos, user_data):
    element = cv.asMat(np.ones((pos * 2 + 1, pos * 2 + 1), 'uint8'), True)
    cv.dilate(src, dest, element)
    cv.imshow("Erosion&Dilation window", dest)
Ejemplo n.º 24
0
    cv.erode(image, dest, element)
    cv.imshow("Opening&Closing window",dest);
def Erosion(pos, user_data):
    element = cv.asMat(np.ones((pos*2+1, pos*2+1), 'uint8'), True)
    cv.erode(src, dest, element)
    cv.imshow("Erosion&Dilation window",dest);
def Dilation(pos, user_data):
    element = cv.asMat(np.ones((pos*2+1, pos*2+1), 'uint8'), True)
    cv.dilate(src, dest, element)
    cv.imshow("Erosion&Dilation window",dest);

if __name__ == "__main__":
    filename = "baboon.jpg"
    if len(sys.argv)==2:
        filename = sys.argv[1]
    src = cv.imread(filename,1)
    if src.empty():
        sys.exit(-1)
    image = src.clone()
    dest = src.clone()
    cv.namedWindow("Opening&Closing window",1)
    cv.namedWindow("Erosion&Dilation window",1)
    cv.imshow("Opening&Closing window",src)
    cv.imshow("Erosion&Dilation window",src)
    cv.createTrackbar("Open","Opening&Closing window",0,10,Opening)
    cv.createTrackbar("Close","Opening&Closing window",0,10,Closing)
    cv.createTrackbar("Dilate","Erosion&Dilation window",0,10,Dilation)
    cv.createTrackbar("Erode","Erosion&Dilation window",0,10,Erosion)
    cv.waitKey(0)
    
 def redraw(self):
     img2 = cv.Mat()
     kernel = cv.asMat(self.kernel*self.scale, force_single_channel=True)
     cv.filter2D(self.img, img2, -1, kernel)
     cv.imshow("Filter Demo", img2)
Ejemplo n.º 26
0
    correspond[:object.rows, :object.cols] = object[:]
    correspond[object.rows:, :image.cols] = image[:]

    # find pairs
    ptpairs = findPairs(surf, objectKeypoints, objectDescriptors,
                        imageKeypoints, imageDescriptors)

    for pair in ptpairs:
        cv.line(correspond, cv.asPoint(pair[0]),
                cv.Point(int(pair[1].x), int(pair[1].y + object.rows)),
                colors[8])

    # locate planar object
    if locatePlanarObject(ptpairs, src_corners, dst_corners):
        for i in range(4):
            r1 = dst_corners[i]
            r2 = dst_corners[(i + 1) % 4]
            cv.line(correspond, cv.Point(r1.x, r1.y + object.rows),
                    cv.Point(r2.x, r2.y + object.rows), colors[8])

    # show the object correspondents
    cv.imshow("Object Correspond", correspond)

    # draw circles
    for keypt in objectKeypoints:
        cv.circle(object_color, cv.asPoint(keypt.pt),
                  int(keypt.size * 1.2 / 9. * 2), colors[0], 1, 8, 0)
    cv.imshow("Object", object_color)

    cv.waitKey(0)
Ejemplo n.º 27
0
# -*- coding: utf-8 -*-
import pyopencv as cv
import sys

try:
    filename = sys.argv[1]
except:
    filename = "lena.jpg"
img = cv.imread( filename )
cv.namedWindow("demo1")
cv.imshow("demo1", img)
cv.waitKey(0)
Ejemplo n.º 28
0
# -*- coding: utf-8 -*-
import pyopencv as cv
import sys

try:
    filename = sys.argv[1]
except:
    filename = "lena.jpg"
img = cv.imread(filename)
cv.namedWindow("demo1")
cv.imshow("demo1", img)
cv.waitKey(0)
Ejemplo n.º 29
0
    winName = 'PyOpenCV fun'

    cascade = pyopencv.CascadeClassifier()
    cascade.load("haarcascades/haarcascade_mcs_eyepair_big.xml")

    fallbackCascade = pyopencv.CascadeClassifier()
    fallbackCascade.load("haarcascades/haarcascade_mcs_eyepair_small.xml")

    glasses = Image.open('darkkamina.png')
    glasses.load()

    capture = pyopencv.VideoCapture()
    frame = pyopencv.Mat()
    capture.open(1)
    pyopencv.namedWindow(winName, pyopencv.CV_WINDOW_AUTOSIZE&1)

    if capture.isOpened():
        while True:
            capture.retrieve(frame)
            if frame.empty():
                break

            eyes = detect(frame, cascade, fallbackCascade)
            final = draw(frame, eyes, glasses)

            pyopencv.imshow(winName, final)

            if pyopencv.waitKey(25) >= 0:
                break

Ejemplo n.º 30
0
def Closing(pos, user_data):
    element = cv.asMat(np.ones((pos * 2 + 1, pos * 2 + 1), 'uint8'), True)
    cv.dilate(src, image, element)
    cv.erode(image, dest, element)
    cv.imshow("Opening&Closing window", dest)
Ejemplo n.º 31
0
 def redraw(self):
     cv.pyrMeanShiftFiltering(self.img, self.img2, self.spatial_radius,
                              self.color_radius, self.max_level)
     cv.imshow("Mean Shift Demo", self.img2)
Ejemplo n.º 32
0
import numpy as np
import pyopencv as cv2

# Load an color image in grayscale
img = cv2.imread('IMG.jpeg', 0)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('1.png', img)
Ejemplo n.º 33
0
if __name__ == '__main__':
    cv.namedWindow('foo', 1)
#    src = load_image('/Users/ross/Programming/demo/lena.jpg', swap=True)
    src = load_image('/Users/ross/Programming/demo/lena.jpg', swap=True)
#    draw_point(src, (100, 100))
    gsrc = grayspace(src)
    tsrc = threshold(gsrc, 100)
    csrc = colorspace(tsrc)
#    gsrc = src
#    conts, hierarchy = contour(tsrc)
# #
#    print get_polygons(conts)

    draw_lines(csrc, [[(0, 0), (100, 100)]])
    cv.imshow('foo', csrc)
    c = cv.waitKey(0)
#    if(c & 255 == 27):
#        break
#======== EOF ===================================================
# def new_dst(src, zero=False, width=None,
#            height=None, nchannels=None, size=None):
#    '''
#    '''
#
# #    print nchannels
#    if width is not None and height is not None:
#        size = cv.Size(width, height)
#    elif size is None:
#        size = cv.getSize(src)
#
 def redraw(self):
     cv.pyrMeanShiftFiltering(self.img, self.img2, 
         self.spatial_radius, self.color_radius, self.max_level)
     cv.imshow("Mean Shift Demo", self.img2)
Ejemplo n.º 35
0
        cv.imshow("Watershed Demo", img3)


# 区域的颜色列表
marks_color = [
    cv.CV_RGB(0, 0, 0),
    cv.CV_RGB(255, 0, 0),
    cv.CV_RGB(0, 255, 0),
    cv.CV_RGB(0, 0, 255),
    cv.CV_RGB(255, 255, 0),
    cv.CV_RGB(0, 255, 255),
    cv.CV_RGB(255, 0, 255),
    cv.CV_RGB(255, 255, 255)
]

# 将颜色列表转换为调色板数组,只取前三个通道的值
palette = np.array([c.ndarray[:-1] for c in marks_color], dtype=np.uint8)

seed = 1  # 从序号1开始设置区域颜色
mask_opacity = 0.5  # 绘制区域颜色的透明度

img = cv.imread("fruits.jpg")
img2 = img.clone()  # 绘制初始区域用
markers = cv.Mat(img2.size(), cv.CV_32S)  # 储存初始区域的数组
markers[:] = 0

cv.namedWindow("Watershed Demo")
cv.imshow("Watershed Demo", img2)
cv.setMouseCallback("Watershed Demo", mouse_call_back)
cv.waitKey(0)
Ejemplo n.º 36
0
def Dilation(pos, user_data):
    element = cv.asMat(np.ones((pos*2+1, pos*2+1), 'uint8'), True)
    cv.dilate(src, dest, element)
    cv.imshow("Erosion&Dilation window",dest);
Ejemplo n.º 37
0
def Closing(pos, user_data):
    element = cv.asMat(np.ones((pos*2+1, pos*2+1), 'uint8'), True)
    cv.dilate(src, image, element)
    cv.erode(image, dest, element)
    cv.imshow("Opening&Closing window",dest);
Ejemplo n.º 38
0
 def redraw(self):
     img2 = cv.Mat()
     kernel = cv.asMat(self.kernel * self.scale, force_single_channel=True)
     cv.filter2D(self.img, img2, -1, kernel)
     cv.imshow("Filter Demo", img2)
        cv.imshow("Watershed Demo", img3)
        

        

        
# 区域的颜色列表
marks_color = [ 
    cv.CV_RGB(0, 0, 0)    ,cv.CV_RGB(255, 0, 0),
    cv.CV_RGB(0, 255, 0)  ,cv.CV_RGB(0, 0, 255),
    cv.CV_RGB(255, 255, 0),cv.CV_RGB(0, 255, 255),
    cv.CV_RGB(255, 0, 255),cv.CV_RGB(255, 255, 255)
]

# 将颜色列表转换为调色板数组,只取前三个通道的值
palette = np.array([c.ndarray[:-1] for c in marks_color], dtype=np.uint8) 

seed = 1 # 从序号1开始设置区域颜色
mask_opacity = 0.5 # 绘制区域颜色的透明度


img = cv.imread("fruits.jpg")
img2 = img.clone() # 绘制初始区域用
markers = cv.Mat(img2.size(), cv.CV_32S) # 储存初始区域的数组
markers[:] = 0

cv.namedWindow("Watershed Demo")
cv.imshow("Watershed Demo", img2)
cv.setMouseCallback("Watershed Demo", mouse_call_back) 
cv.waitKey(0)
w, h = img.size().width, img.size().height

def blend(img, img2): 
    """
    混合两幅图像, 其中img2有4个通道
    """
    #使用alpha通道计算img2的混和值
    b = img2[:,:,3:] / 255.0     
    a = 1 - b # img的混合值

    #混合两幅图像
    img[:,:,:3] *= a  
    img[:,:,:3] += b * img2[:,:,:3]

img2[:] = 0
for i in xrange(0, w, w/10): 
    cv.line(img2, cv.Point(i,0), cv.Point(i, h),  
        cv.Scalar(0, 0, 255, i*255/w), 5)

blend(img, img2) 

img2[:] = 0        
for i in xrange(0, h, h/10):
    cv.line(img2, cv.Point(0,i), cv.Point(w, i), 
        cv.Scalar(0, 255, 0, i*255/h), 5)
        
blend(img, img2)
     
cv.namedWindow("Draw Demo")
cv.imshow("Draw Demo", img)
cv.waitKey(0)
Ejemplo n.º 41
0
def Erosion(pos, user_data):
    element = cv.asMat(np.ones((pos * 2 + 1, pos * 2 + 1), 'uint8'), True)
    cv.erode(src, dest, element)
    cv.imshow("Erosion&Dilation window", dest)


def Dilation(pos, user_data):
    element = cv.asMat(np.ones((pos * 2 + 1, pos * 2 + 1), 'uint8'), True)
    cv.dilate(src, dest, element)
    cv.imshow("Erosion&Dilation window", dest)


if __name__ == "__main__":
    filename = "baboon.jpg"
    if len(sys.argv) == 2:
        filename = sys.argv[1]
    src = cv.imread(filename, 1)
    if src.empty():
        sys.exit(-1)
    image = src.clone()
    dest = src.clone()
    cv.namedWindow("Opening&Closing window", 1)
    cv.namedWindow("Erosion&Dilation window", 1)
    cv.imshow("Opening&Closing window", src)
    cv.imshow("Erosion&Dilation window", src)
    cv.createTrackbar("Open", "Opening&Closing window", 0, 10, Opening)
    cv.createTrackbar("Close", "Opening&Closing window", 0, 10, Closing)
    cv.createTrackbar("Dilate", "Erosion&Dilation window", 0, 10, Dilation)
    cv.createTrackbar("Erode", "Erosion&Dilation window", 0, 10, Erosion)
    cv.waitKey(0)