最近认识了OpenCV,我们来介绍一下OpenCV图像的简单操作
注意读取图片要标明图片名和图片类型(读取图片相同)
保存图片时标明路径,图片名,及图片格式
注意格式 变量名2=变量名1[x1:y1,x2:y2](有行截取和列截取) 截取时是中括号不是括号
cv2.flip()函数
import cv2 img=cv2.imread('C:/Users/admin/Desktop/20191027-Pyhton+OpenCV/a/5.jpg') img1=cv2.flip(img,1)#大于0,左右翻转 img2=cv2.flip(img,0)#等于0,上下翻转 img3=cv2.flip(img,-1)#小于0,先上下翻转再左右翻转 cv2.imshow('text',img) cv2.imshow('text1',img1) cv2.imshow('text2',img2) cv2.imshow('text3',img3) cv2.waitKey(0)注意使用flip()时应注意img在前不在后(特殊)
注意: 设置缩放因子时,尺寸得打None(否则语法错误),且缩放因子是fx,fy不是x,y
效果图 注意:cvtColor中C是大写 2前为转化前,2后为转化后(且均用大写表示) imread读进的格式为BGR非RGB
注意,引用了numpy vstack(竖直)和和hstack(水平)前用numpy(不是cv2)
下面分享一只作者做的小猪佩奇 附上代码
import cv2 import numpy as np img=255*np.ones((700,700,3),np.uint8) cv2.ellipse(img,(125,300),(60,60),180,160,390,(203,192,255),-1)#头 cv2.ellipse(img,(146,260),(75,50),160,0,360,(203,192,255),-1)#鼻子 cv2.circle(img,(120,235),10,(255,255,255),-1)#眼睛 cv2.circle(img,(148,222),10,(255,255,255),-1)#眼睛 cv2.circle(img,(123,235),5,(0,0,0),-1)#眼睛 cv2.circle(img,(151,222),5,(0,0,0),-1)#眼睛 cv2.ellipse(img,(195,244),(30,20),80,0,360,(71,99,255),3)#鼻子圈 cv2.circle(img,(190,235),4,(0,0,0),-1)#鼻孔 cv2.circle(img,(200,230),4,(0,0,0),-1)#鼻孔 cv2.ellipse(img,(140,300),(30,30),180,170,350,(0,0,255),3)#嘴巴 cv2.circle(img,(90,290),15,(255,0,255),-1)#腮红 cv2.ellipse(img,(90,225),(20,10),60,0,360,(203,192,255),-1)#耳朵 cv2.ellipse(img,(125,205),(20,10),70,0,360,(203,192,255),-1)#耳朵 cv2.ellipse(img,(125,430),(100,65),90,90,270,(203,192,255),-1)#身体 cv2.line(img,(170,370),(210,390),(203,192,255),4)#右手臂 cv2.line(img,(210,390),(213,395),(203,192,255),4)#手指 cv2.line(img,(210,390),(213,385),(203,192,255),4)#手指 cv2.line(img,(210,390),(219,392),(203,192,255),4)#手指 cv2.line(img,(85,360),(40,330),(203,192,255),4)#左手臂 cv2.line(img,(40,330),(37,335),(203,192,255),4)#手指 cv2.line(img,(40,330),(37,325),(203,192,255),4)#手指 cv2.line(img,(40,330),(33,330),(203,192,255),4)#手指 cv2.line(img,(100,430),(100,455),(203,192,255),4)#手指 cv2.line(img,(150,430),(150,455),(203,192,255),4)#手指 cv2.ellipse(img,(108,455),(10,5),180,0,360,(0,0,0),-1)#脚 cv2.ellipse(img,(158,455),(10,5),180,0,360,(0,0,0),-1)#脚 cv2.ellipse(img,(60,400),(8,8),180,180,0,(203,192,255),4)#尾巴 cv2.ellipse(img,(45,398),(8,8),180,180,360,(203,192,255),4)#尾巴 cv2.putText(img,'peppa pig',(400,400),cv2.FONT_HERSHEY_DUPLEX,1,(0,0,0),2)#字体 cv2.imshow('draw',img) cv2.waitKey(0)可以把我们所做的OpenCV简单操作的图片保存成一个文件夹
import cv2 import numpy as np img=cv2.imread('C:/Users/admin/Desktop/20191027-Pyhton+OpenCV/a/5.jpg') img1=cv2.resize(img,(400,400)) img2=cv2.cvtColor(img1,cv2.COLOR_BGR2RGB) img3=cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY) img4=cv2.resize(img,(700,700)) img5=cv2.resize(img,None,fx=0.7,fy=0.7) img6=cv2.flip(img1,1) img7=cv2.flip(img1,0) img8=cv2.flip(img1,-1) img9=np.vstack([img1,img1]) img10=np.hstack([img1,img1]) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/1.jpg',img1) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/2.jpg',img2) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/3.jpg',img3) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/4.jpg',img4) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/5.jpg',img5) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/6.jpg',img6) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/7.jpg',img7) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/8.jpg',img8) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/9.jpg',img9) cv2.imwrite('C:/Users/admin/Desktop/OpenCV/10.jpg',img10) cv2.waitKey(0)Ending!