def myputText(img,text,font,scale,origin,color,thickness,lineType): thickness=int(thickness) scale=int(scale) color=Point.point_int(color) font = cv2.FONT_HERSHEY_SIMPLEX if linetype == 8 : cv2.putText(img,text,org,font,scale,color, thickness,lineType=8)
def blur(img,kernel_size): if img is None: print 'Error in input Image' return 0 kernel_size=Point.point_int(kernel_size) blurimage = cv2.blur(img,kernel_size) return blurimage
def kernel(kernel_type,array_size): size=Point.point_int(array_size) kernel_type=int(kernel_type) if kernel_type==1: kernel=cv2.getStructuringElement(cv2.MORPH_RECT,size) if kernel_type==2: kernel=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,size) if kernel_type==3: kernel=cv2.getStructuringElement(cv2.MORPH_CROSS,size) return kernel
def ORB(image,features,scaleFactor,color,displayimage): color=Point.point_int(color) features=int(features) scaleFactor=int(scaleFactor) if image is None: print 'Error in input Image' return 0,0 orb = cv2.ORB(features,scaleFactor) kp, des = orb.detectAndCompute(image,None) img2 = cv2.drawKeypoints(image,kp,color, flags=0) if displayimage==1: cv2.imshow("image",img2) cv2.waitKey(0) return (kp,des)
def grabcut(image,mask,bgdModel,fgdModel,rect,iterations,mode): iterations=int(iterations) rect = Point.point_int(rect) if mode ==1: cv2.grabCut(image,mask,rect,bgdModel,fgdModel,iterations,cv2.GC_INIT_WITH_RECT) mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8') image = image*mask2[:,:,np.newaxis] elif mode==2: newmask=mask mask[newmask == 0] = 0 mask[newmask == 255] = 1 mask, bgdModel, fgdModel = cv2.grabCut(image,mask,None,bgdModel,fgdModel,iterations,cv2.GC_INIT_WITH_MASK) mask = np.where((mask==2)|(mask==0),0,1).astype('uint8') image = image*mask[:,:,np.newaxis] else: print "Please check the mode" return image
def gaussianFilter(image, kernel_type,kernel_size, sigmaX, sigmaY): if image is None: print 'Error in input Image' return 0 kernel_size=Point.point_int(kernel_size) if sigmaY==0 and sigmaX==0: sigmaX=kernel_size[0] sigmaY=kernel_size[1] kernel=Kernel.kernel(kernel_type,kernel_size) sigmaColor = int(sigmaX) sigmaSpace = int(sigmaY) if kernel_size[0]%2==0 and kernel_size[1]%2==0: print 'The kernel size should be odd' return 0 image=cv2.GaussianBlur(image,kernel_size , sigmaColor, sigmaSpace) return image
import cv2 import numpy as np import Point def rect(img,start,end,color,linetype,thickness): thickness=int(thickness) color=Point.point_int(color) start=Point.point_int(start) end=Point.point_int(end) if linetype == 8 : cv2.rectangle(img,start,end,color,thickness,lineType=8) elif linetype == 4 : cv2.rectangle(img,start,end,color,thickness,lineType=4) else: cv2.rectangle(img,start,end,color,thickness,lineType=CV_AA) return img