python+opencv实现论文插图局部放大并拼接效果
作者:听、 风 发布时间:2023-12-07 17:29:12
标签:python,opencv,局部
前言
在制作论文插图时,有时要求将图片的局部放大来展示细节内容,同时将放大图拼接在原图上以方便观察对比。
当然直接利用电脑自带的画图软件或者别的软件也可以很方便地实现,但是如果碰到多个算法处理一张图片后多张图片进行对比就不太方便了,这里主要贴一下 python 代码的实现。
cv2.rectangle() 函数
cv2.rectangle(img, pt1, pt2, color, thickness )
功能是在图片上画一个矩形框,没有返回值。
参数列表:
img:图片
pt1:长方形框左上角坐标
pt2:长方形框右下角坐标
color:字体颜色
thickness:字体粗细
示例
import cv2
image = 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 cv2
image = 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 cv2
import numpy as np
image1 = 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 cv2
import numpy as np
image = 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)
来源:https://blog.csdn.net/Wenyuanbo/article/details/120614070


猜你喜欢
- 导入excel文件前言两种导入文件的方法:form表单和el-upload第一种方法:form表单一、文件上传的三要素是什么?文件上传的三要
- 先来定义分页语句将要用到的几个参数:int currentPage ; //当前页int pageRecord ; //每页显示记录数以之前
- 时间处理是我们日常开发中最最常见的需求,例如:获取当前datetime、获取当天date、获取明天/前N天、获取当天开始和结束时
- 编写程序的时候,经常要处理字符串,最基本就是字符串的查找,在php检测字符串中是否包含指定字符串可以使用正则,如果你对正则不了解,那么有几个
- 树莓派没有显示器,而不想设置固定IP,因为要随身携带外出,每个网络环境可能网段不一样。因此想用python写个脚本,让树莓派开机后自动获取本
- 网站设计时,有一个最常用的指导性原则:页面长度原则上不超过3屏,宽度不超过1屏。这个原则明显是从用户的体验出发,特别是宽度不超过一屏,其最基
- bootstrap-table简介•1.1、bootstrap table简介及特征: &nb
- 这篇文章主要介绍了Pytest mark使用实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 本文中,我们将进行大量的编程——但在这之前,我们先介绍一下我们今天要解决的实例问题。1) 预测房子价格房价大概是我们中国每一个普通老百姓比较
- 哎,好久没有学习爬虫了,现在想要重新拾起来。发现之前学习爬虫有些粗糙,竟然连requests中添加cookies都没有掌握,惭愧。废话不宜多
- MySQL为开源数据库,因此可以基于源码实现安装。基于源码安装有更多的灵活性。也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后
- 具体内容如下:1 os.system例如 ipython中运行如下命令,返回运行状态statusos.system('cat /et
- 假设我们需要从各种网页中提取全文,并且要剥离所有HTML标记。通常,默认解决方案是使用BeautifulSoup软件包中的get_text方
- 介绍图像分类器通常在训练更多的图像时表现得更好。在图像分类模型中,一个常见的问题是,模型不能正确地对图像进行分类,只是因为它没有针对同一图像
- FileSystemObject、Folder 和 File 对象的一些方法都与通过 TextStream 对象创建、读取或写入文件有关。虽
- 这系列文章将介绍一下Oracle的基础知识,将会使用docker下运行的oracle11g的精简版进行说明。这篇文章介绍一下oracle的版
- 因为旧电脑不幸挂了,所以要在新电脑上面重新安装Python。一看官网发现已经更新到3.8.5+了,乖乖,真是迭代快啊。虽然之前安装过一次,不
- 小编把之前整理的关于mysql 5.7.9 免安装版配置方法分享给大家,供大家参考,具体内容如下1. 解压MySQL压缩包将下载的MySQL
- 目录1.数据库主从分类:2.mysql主从介绍由来3.主从作用4.主从复制原理5.主从复制配置(数据一致时)5.1主从服务器分别安装mysq
- 多属性排序:把需要排序的属性拿出来作为一个 tuple,主要的放前面,次要的放后面。假如某对象有n个属性,那么先按某规则对属性a进行排序,在