Python的Open CV学习一(准备工作)https://blog.csdn.net/m0_55868453/article/details/122823865?spm=1001.2014.3001.5501Python的Open CV学习二(显示图片)
https://blog.csdn.net/m0_55868453/article/details/122826126?spm=1001.2014.3001.5501Python的Open CV学习三(显示视频和摄像头图像)
https://blog.csdn.net/m0_55868453/article/details/122848220?spm=1001.2014.3001.5501
今天学习如何进行画图以及对其图像进行逆透视变换
画图
首先我们导入需要的库
#导入CV2库q
import cv2.cv2 as cv2
#导入numpy库
import numpy as np
其次创建我们需要绘制图像的大小
#创建矩阵512*512大小图像 其中3为通道的意思,也可为维数3维矩阵
img = np.zeros((512,512,3),np.uint8)
然后根据需求绘制想要的图像
#创造线条 图像 起始点 终点 颜色 厚度
cv2.line(img,(0,0),(img.shape[1],img.shape[0]),(0,255,0),3)
#创造矩形 图像 起始点 终点 颜色 厚度
cv2.rectangle(img,(0,0),(200,350),(0,0,255),5)
#如果想让矩形颜色填充完整,则将在后面添加cv2.FILLED,删去厚度值
# cv2.rectangle(img,(0,0),(200,350),(0,0,255),cv2.FILLED)
#创造圆 图像 圆心 半径 颜色 厚度
cv2.circle(img,(400,50),30,(0,255,255),3)
#放置文本 图像 文本 位置 字体 大小 颜色 厚度
cv2.putText(img,' OPENCV ',(300,200),cv2.FONT_HERSHEY_COMPLEX,1,(0,150,0),3)
最后别忘了将其显示出来
cv2.imshow("Image",img)
cv2.waitKey(0)
最后效果图
图像逆透视变换
同样也是导入需要的库
#导入CV2库q
import cv2.cv2 as cv2
#导入numpy库
import numpy as np
其次我们读取想要逆透视变换的图片,并且设置显示逆透视变换后的图像大小
#读取图片,并显示大小
img = cv2.imread('mofang.jpg')
print(img.shape)
#定义宽高
width,height=500,500
然后我们需要通过电脑自带画图软件或者PS等工具对需要逆透视变换的四个角进行坐标的读取,然后将其坐标按照左上 左下 右下 右上的顺序输入
#定义图片想要的位置坐标 得自己再ps上或者能看坐标的软件观看
pts1 = np.float32([[291,204],[439,112],[294,457],[436,351]])
pts2 = np.float32([[0,0],[width,0],[0,height],[width,height]])
输入完成之后开始对其需要的图像进行逆透视变换
#由四对点计算透射变换 前面为输入的矩阵坐标 后面为输出矩阵坐标
matrix= cv2.getPerspectiveTransform(pts1,pts2)
#对图像进行透视变换 图像 矩阵 宽高
imgOutput = cv2.warpPerspective(img,matrix,(width,height))
最后对其原图像与逆透视变换的图像进行显示
cv2.imshow('Image',img)
cv2.imshow('Output',imgOutput)
cv2.waitKey(0)
最终效果图