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
0
投稿
猜你喜欢
- 上文我们总结过了Python多继承的相关知识,没看过的小伙伴们也可以去看看,今天给大家介绍Python类的单继承相关知识。一、类的继承面向对
- 算法11、分小数和整数:如果小数点个数为1,则可能是小数。如小数点个数为0,则可能是整数。小数点个数非0也非1,那么就不是数字。2、如果是小
- 1.安装pymysql进入cmd,输入 pip install pymysql: 2.数据库建表在数据库中,建立一个简单的表,如图: 3.简
- 新建图像文件后选Channels面板,新建Alpha1通道; 做压
- 本文实例讲述了Python通过TensorFLow进行线性模型训练原理与实现方法。分享给大家供大家参考,具体如下:1、相关概念例如要从一个线
- 这篇文章主要介绍了python处理RSTP视频流过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 由Oralce8.1开始,Oracle增加了一个新的特性就是Stored Outlines,或者称为Plan Stability(计划稳定性
- 1、介绍在爬虫中经常会遇到验证码识别的问题,现在的验证码大多分计算验证码、滑块验证码、识图验证码、语音验证码等四种。本文就是识图验证码,识别
- “占位图形”顾名思义是在准备好将最终图形添加到 Web 页之前使用的临时图形。使用它可以在没有理想的图形的情况下先行制作Web页面——在需要
- php中session_id()函数原型及说明session_id()函数说明:stringsession_id([string$id])s
- 平时我们获取事件对象一般写法如下:function getEvent(event) { return e
- 准备篇:1、配置防火墙,开启80端口、3306端口说明:Ubuntu默认安装是没有开启任何防火墙的,为了服务器的安全,建议大家安装启用防火墙
- 多线程多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,
- 首先需要安装Win32-ODBC模块,具体的步骤如下:1:从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一
- 淘宝的投诉类型里有这么一条“收款不发货”。帮助中心里是这么解释的:买、卖双方在淘宝上成交后,当卖家在收到买家汇款后没有按时履行发货义务,或买
- 配置要求:IIS(win2000 server 自带)、Java 2 SDK 1.4.2 (或更高版本)、Tomcat Web Server
- 在标志设计中文字与图形元素总是紧密配合,只有恰当的字体与图形搭配时才能发挥最大的视觉效果。这也意味着你不能抛开图案,只是一厢情愿地选择你自己
- <% '测试读取MySql数据库的内容strconnection="driver={mysql odbc 3.51 dri
- requests是一个python 轻量的http客户端库,相比python的标准库要优雅很多。接下来通过本文给大家介绍Python3使用r
- 第一种:i=0sum=0a=0while i<102: if i>=1 and i%4==1: sum+=i eli