#导入cv模块importcv2ascv#读取图片img=cv.imread('face1.jpg')#注意读取图片的路径及图片名不能有中文,不然数据读取不出来#显示图片cv.imshow('read_img',img)#等待键盘的输入单位是毫秒传入0无限等待cv.waitKey(0)#释放内存由于OpenCV底层是C++语言编写的使用完内存必须释放cv.destroyAllWindows()案例2,灰度转换
#导入cv模块importcv2ascv#读取图片img=cv.imread('face1.jpg')#灰度转换gray_img=cv.cvtColor(img,cv.COLOR_BGR2GRAY)#gray_img=cv.cvtColor(img,cv.COLOR_RGB2BGR)#另一种颜色#显示灰度cv.imshow('gray_img',gray_img)#保存灰度图片cv.imwrite('gray_face1.jpg',gray_img)#显示图片cv.imshow('read_img',img)#等待键盘的输入单位是毫秒传入0无限等待cv.waitKey(0)#释放内存由于OpenCV底层是C++语言编写的使用完内存必须释放cv.destroyAllWindows()案例3,裁切图片
#导入cv模块importcv2ascv#读取图片img=cv.imread('face1.jpg')#修改尺寸resize_img=cv.resize(img,dsize=(200,200))#显示原图cv.imshow('img',img)#显示修改后的cv.imshow('resize_img',resize_img)#打印原图尺寸大小print('未修改',img.shape)#打印修改后的大小print('修改后',resize_img.shape)#cv.waitKey(0)#只有输入q时候,退出whileTrue:iford('q')==cv.waitKey(0):break#释放内存由于OpenCV底层是C++语言编写的使用完内存必须释放cv.destroyAllWindows()案例4,绘制矩形,圆形
#导入cv模块importcv2ascv#读取图片img=cv.imread('face1.jpg')#左上角的坐标是(x,y)矩形的宽高和高度(w,h)x,y,w,h=100,100,100,100#绘制矩形cv.rectangle(img,(x,y,x+w,y+h),color=(0,0,255),thickness=1)#color=BGR#绘制圆形center为圆点坐标radius为半径x,y,r=200,200,100cv.circle(img,center=(x,y),radius=r,color=(255,0,0),thickness=2)#显示cv.imshow('re_img',img)#cv.waitKey(0)#只有输入q时候,退出whileTrue:iford('q')==cv.waitKey(0):break#释放内存由于OpenCV底层是C++语言编写的使用完内存必须释放cv.destroyAllWindows()案例5,检测人脸
#导入cv模块importcv2ascv#检测函数defface_detect_demo():gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)face_detect=cv.CascadeClassifier('D:/soft/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')face=face_detect.detectMultiScale(gray,1.1,5)#限制最小最大宽高,0,(100,100),(300,300)forx,y,w,hinface:cv.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)cv.imshow('result',img)#读取图片img=cv.imread('face1.jpg')#检测函数face_detect_demo()#cv.waitKey(0)#只有输入q时候,退出whileTrue:iford('q')==cv.waitKey(0):break#释放内存由于OpenCV底层是C++语言编写的使用完内存必须释放cv.destroyAllWindows()案例6,读取摄像头
#导入cv模块importcv2ascv#检测函数defface_detect_demo(img):gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)face_detect=cv.CascadeClassifier('D:/ProgramFiles/opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml')face=face_detect.detectMultiScale(gray,1.1,5)#限制最小最大宽高,0,(100,100),(300,300)forx,y,w,hinface:cv.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)cv.imshow('result',img)#读取摄像头cap=cv.VideoCapture(0)#cap=cv.VideoCapture('1.mp4')#读视频#循环whileTrue:flag,frame=cap.read()ifnotflag:breakface_detect_demo(frame)#按q退出iford('q')==cv.waitKey(0):break#释放内存由于OpenCV底层是C++语言编写的使用完内存必须释放cv.destroyAllWindows()#释放摄像头cap.release()案例7,保存摄像头图片
#导入cv模块importcv2#读取摄像头cap=cv2.VideoCapture(0)falg=1num=1while(cap.isOpened()):#检测是否开启状态ret_flag,Vshow=cap.read()#得到每一帆图片cv2.imshow('Capture_Test',Vshow)k=cv2.waitKey(1)&0xffifk==ord('s'):#保存cv2.imwrite('data/'+str(num)+'.name.jpg',Vshow)msg="Successtosavedata/"+str(num)+".name.jpg"print(msg)print("-----------------")num+=1ifk==ord(''):#退出break;#释放摄像头cap.release()#释放内存由于OpenCV底层是C++语言编写的使用完内存必须释放cv.destroyAllWindows()案例8,生成人脸数据
PyAutoGUI简单案例
在使用ddddocr时报下面错误,解决方法:
^^^^^^^^^^^^^^^^^^^^^^File"C:\python\Lib\site-packages\ddddocr\__init__.py",line466,inclassificationimage=image.resize((int(image.size[0]*(64/image.size[1])),64),Image.ANTIALIAS).convert('L')^^^^^^^^^^^^^^^原来是在pillow的10.0.0版本中,ANTIALIAS方法被删除了,使用新的方法即可:Image.LANCZOS旧版Image.Resampling.LANCZOS新版本或Image.LANCZOSC:\python\Lib\site-packages\ddddocr\__init__.py文件里修改:#image=image.resize((int(image.size[0]*(64/image.size[1])),64),Image.ANTIALIAS).convert('L')image=image.resize((int(image.size[0]*(64/image.size[1])),64),Image.LANCZOS).convert('L')