python+opencv实现论文插图局部放大并拼接效果
目录
- 前言
- cv2.rectangle() 函数
- cv2.resize() 函数
- np.hstack() 和 np.vstack() 函数
- 实现局部框定放大拼接
- 总结
前言 在制作论文插图时,有时要求将图片的局部放大来展示细节内容,同时将放大图拼接在原图上以方便观察对比。
当然直接利用电脑自带的画图软件或者别的软件也可以很方便地实现,但是如果碰到多个算法处理一张图片后多张图片进行对比就不太方便了,这里主要贴一下 python 代码的实现。
cv2.rectangle() 函数
cv2.rectangle(img, pt1, pt2, color, thickness )
功能是在图片上画一个矩形框,没有返回值。参数列表:示例
img:图片
pt1:长方形框左上角坐标
pt2:长方形框右下角坐标
color:字体颜色
thickness:字体粗细
import cv2image = cv2.imread('F://test.png')pt1 = (10, 190)# 长方形框左上角坐标pt2 = (160, 270)# 长方形框右下角坐标 cv2.rectangle(image, pt1, pt2, (255, 0, 0), 5)cv2.imshow('demo', image)
文章图片
cv2.resize() 函数
cv2.resize(src, dsize)
功能是将图片缩放为指定大小,返回值是改变后的图片。参数列表:示例
src: 输入图片
dsize:输出图片的尺寸
import cv2image = cv2.imread('F://test.png')h, w = image.shape[0:2]print(f'原来图片的大小:{w}×{h}')image = cv2.resize(image, (150, 300))h, w = image.shape[0:2]print(f'缩小后图片的大小:{w}×{h}')
文章图片
np.hstack() 和 np.vstack() 函数
np.hstack((img1, img2, ···))
和 np.vstack((img1, img2·, ···))
。np.hstack()
和 np.vstack()
是 numpy 提供的两个矩阵拼接函数,顾名思义 np.hstack()
是水平方向拼接,np.vstack()
是垂直方向拼接。参数列表:示例
img1:第一个图片
img2:第二个图片
imgn:第 n 个图片
要求:输入图片的行数或者列数相同
import cv2import numpy as npimage1 = cv2.imread('F://test.png')image2 = cv2.resize(image1, (150, 300))image3 = cv2.resize(image1, (550, 410))image = np.hstack((image1, image2))image = np.vstack((image, image3))cv2.imshow('demo', image)
文章图片
实现局部框定放大拼接
import cv2import numpy as npimage = cv2.imread('F://test.png')# 第一个局部放大图pt1 = (150, 70)# 长方形框左上角坐标pt2 = (250, 130)# 长方形框右下角坐标cv2.rectangle(image, pt1, pt2, (0, 0, 255), 2)patch1 = image[70:130, 150:250, :]patch1 = cv2.resize(patch1, (200, 120))# 第二个局部放大图pt1 = (265, 70)# 长方形框左上角坐标pt2 = (365, 130)# 长方形框右下角坐标cv2.rectangle(image, pt1, pt2, (0, 255, 0), 2)patch2 = image[70:130, 265:365, :]patch2 = cv2.resize(patch2, (200, 120))# 拼接patch = np.hstack((patch1, patch2))image = np.vstack((image, patch))cv2.imshow('demo', image)cv2.imwrite('F://test_result.png', image)
文章图片
总结 【python+opencv实现论文插图局部放大并拼接效果】到此这篇关于python+opencv实现论文插图局部放大并拼接效果的文章就介绍到这了,更多相关python+opencv插图局部放大并拼接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- java中如何实现重建二叉树
- 人脸识别|【人脸识别系列】| 实现自动化妆
- paddle|动手从头实现LSTM
- pytorch|使用pytorch从头实现多层LSTM