以下为日常总结的Python中实用的模块和函数,放在这里当做记录,也希望能帮到其他人
#cv2模块为opencv
img=cv2.imread('1.jpg',cv2.IMREAD_GRAYSCALE)# 读入图片,灰阶化
img=cv2.imread('1.jpg')# 读入图片
import os
flist=os.listdir('test')
def showvar(flist):
for f in flist:
img=cv2.imread(f,cv2.IMREAD_GRAYSCALE) //可以使用某个通道,一般用灰度值
print f+' '+str(cv2.Laplacian(img,cv2.CV_64F).var()) //用拉普拉斯算子计算图像清晰度,值越大越清晰 var为方差
showvar(test)
def show(img):
cv2.imshow('d',img)
cv2.waitKey(0) #习惯使用的显示图片函数
x,y,color=img.shape#获得图片大小
img2=cv2.resize(img,(300,300))#改变图片大小
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(5,5)) #定义结构元素,图像膨胀、侵蚀、开闭运算用
eroded = cv2.erode(img,kernel)#腐蚀图像
dilated = cv2.dilate(img,kernel)#膨胀图像
opened = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)#开运算 morphology:形态学
closed = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)#闭运算
show(cv2.absdiff(opened,closed))#两个图像的差->边缘
#闭运算用来连接被误分为许多小块的对象,而开运算用于移除由图像噪音形成的斑点。因此,某些情况下可以连续运用
#这两种运算。如对一副二值图连续使用闭运算和开运算,将获得图像中
#的主要对象。同样,如果想消除图像中的噪声(即图像中的“小点”),也可以对图像先用开运算后用闭运算,不过这样也会消除一些破碎的对象。
retval, result = cv2.threshold(result, 40, 255, cv2.THRESH_BINARY)#二值化,40为阈值
cap=cv2.VideoCapture(0)#获得照相设备的句柄,一般0是摄像头
flag,img=cap.rea