3、水面倒影效果

水面倒影效果

概要

我们会使用 Matplotlib 的 pyplot 模块创建图并显示图像:

用以下魔术命令,以便将图像显示在笔记本中而不是在新的显示窗口中:

如果要显示彩色图像,可以使用以下命令将图像从 BGR 转换为 RGB

最后使用 plt.show() 命令显示图像。

import matplotlib.pyplot as plt

%matplotlib inline


实验目标

实现一个水面过滤器,该过滤器负责垂直翻转漂浮在水体上的对象。可以在下图中看到这种效果:

 
实验内容

import cv2                       
import numpy as np               
import matplotlib.pyplot as plt  

# 使用以下魔术命令,以便将图像显示在notebook中
%matplotlib inline


# 读取图像
zebra = cv2.imread('./zebra.jpg')  # BGR格式
print(zebra.shape)  # 查看现状
hight, width = zebra.shape[:2] # 存储图像高和宽
plt.imshow(zebra[:,:,::-1])  # 将BGR格式转为RGB,显示图像



# 创建新的图片,height为原图两倍,数据类型为uint8, 全0填充
new_zebra = np.zeros((2*hight, width, 3), dtype='uint8')
print(new_zebra.shape)  # 查看现状
plt.imshow(new_zebra[:,:,::-1])



# 原图copy到上半部分
new_zebra[:hight, :width, :] = zebra
plt.imshow(new_zebra[:,:,::-1])



# 原图上下倒置copy到下半部分
new_zebra[hight:, :width, :] = zebra[::-1, :, :]  # y方向上实现上下倒置, 你也可以试试实现左右倒置
plt.imshow(new_zebra[:,:,::-1])


# 保存图片
cv2.imwrite('./new_zebra.jpg', new_zebra)

原图: 

 

 新创建图:

 原图copy到上半部分:

 

 结果:

结语

在本实验我们利用了NumPy 、cv2的结合实现图像镜面效果。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值