展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

图像融合与缩放

  • 图像融合
import cv2 #opencv的缩写为cv2
import matplotlib.pyplot as plt # matplotlib库用于绘图展示
import numpy as np # numpy数值计算工具包
# 魔法指令,直接展示图,Jupyter notebook特有
%matplotlib inline
img_cat = cv2.imread('01_Picture/01_cat.jpg')
img_dog = cv2.imread('01_Picture/03_dog.jpg')
print(img_cat.shape)
print(img_dog.shape)
img_cat+img_dog # 不同数据大小不能执行数值计算操作
  • 执行结果,融合失败
(414, 500, 3)
(429, 499, 3)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-2-954c1b757e44> in <module>
4 print(img_cat.shape)
5 print(img_dog.shape)
----> 6 img_cat+img_dog # 不同数据大小不能执行数值计算操作
ValueError: operands could not be broadcast together with shapes (414,500,3) (429,499,3)
  • 先转换图片数值
print(img_cat.shape)
print(img_dog.shape)
img_dog = cv2.resize(img_dog,(500,414))
img_dog.shape
  • 执行结果
(414, 500, 3)
(429, 499, 3)
(414, 500, 3)
  • 融合
res = cv2.addWeighted(img_cat,0.4,img_dog,0.6,0) # img_cat 的权重为 0.4,img_dog 的权重为 0.6
print(img_dog.shape)
plt.imshow(res)
  • 执行结果
(414, 500, 3)
<matplotlib.image.AxesImage at 0x2108bfff668>

  • 倍数缩放
import cv2 #opencv的缩写为cv2
import matplotlib.pyplot as plt # matplotlib库用于绘图展示
import numpy as np # numpy数值计算工具包
# 魔法指令,直接展示图,Jupyter notebook特有
%matplotlib inline
img = cv2.imread('01_Picture/01_cat.jpg')
res = cv2.resize(img,(0,0),fx=3,fy=1) # (0,0)表示不确定具体值,fx=3 相当于行像素 x 乘 3,fy=1 相当于 y 乘 1
plt.imshow(res)
  • 执行结果
<matplotlib.image.AxesImage at 0x28bb5703630>

  • 等比例缩放
res = cv2.resize(img,(0,0),fx=1.5,fy=1.5) # 同比例放缩
plt.imshow(res)
  • 执行结果
<matplotlib.image.AxesImage at 0x2948be20ef0>

posted @   DogLeftover  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示