'''
OpenCV-图片的镜像
实现步骤:
1.创建一个足够大的“画板”,宽度和原来一致,高度是原来的两倍
2.将一副图像分别从前向后、从后向前绘制
3.绘制中心分割线
'''
import cv2
import numpy as np
img = cv2.imread('D:\image01.jpg',1)
#读取原图片的高和宽
imgInfo = img.shape
#定义原始图片的高度和宽度
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
dstheight = int(height*0.3)
dstwidth = int(width*0.3)
dst = cv2.resize(img,(dstheight,dstwidth))
cv2.imwrite('D:\image1.jpg',dst)
cv2.waitKey(1)
newimg = cv2.imread('D:\image1.jpg',1)
cv2.imshow('image',newimg)
newimgInfo = newimg.shape
newheight = newimgInfo[0]
newwidth = newimgInfo[1]
newdeep = newimgInfo[2]#深度描述的是每个像素由多少个颜色组成
newImgInfo = (newheight*2,newwidth,newdeep)
#定义一个空矩阵,矩阵的大小和原图片一样,第一个参数是原始图片的维度,第二个参数是图片的数据类型
newdst = np.zeros(newImgInfo,np.uint8)
for i in range(0,newheight):
for j in range(0,newwidth):
#绘制上半部分
newdst[i,j] = newimg[i,j]
#绘制下半部分 x不变 y=2*h-y-1
newdst[newheight*2-i-1,j] = newimg[i,j]
for i in range(0,newwidth):
newdst[newheight,i] = (0,0,255)#BGR格式
cv2.imshow('dst',newdst)
cv2.waitKey(0)
python+OpenCV 图像镜像
最新推荐文章于 2024-08-26 23:25:25 发布