python+OpenCV 图像镜像

'''
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)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yhwang-hub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值