python+opencv实现论文插图局部放大并拼接效果

 更新时间:2021年10月09日 14:51:20   作者:听、 风  
在做图像数据标注时,很难一次就做到精准标注,如果目标比较小,即使微调也难以做到精准,所以就需要另外一个窗口对标注区域进行局部放大以方便微调,这篇文章主要给大家介绍了关于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)

总结

到此这篇关于python+opencv实现论文插图局部放大并拼接效果的文章就介绍到这了,更多相关python+opencv插图局部放大并拼接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python爬取某平台短视频的方法

    Python爬取某平台短视频的方法

    这篇文章主要介绍了Python爬取某平台短视频的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • python实现将html表格转换成CSV文件的方法

    python实现将html表格转换成CSV文件的方法

    这篇文章主要介绍了python实现将html表格转换成CSV文件的方法,涉及Python操作csv文件的相关技巧,需要的朋友可以参考下
    2015-06-06
  • pyecharts如何使用formatter回调函数的问题

    pyecharts如何使用formatter回调函数的问题

    这篇文章主要介绍了pyecharts如何使用formatter回调函数的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python内置函数OCT详解

    Python内置函数OCT详解

    本文给大家介绍的是python中的内置函数oct(),其主要作用是将十进制数转换成八进制,再变成字符。有需要的小伙伴可以参考下
    2016-11-11
  • python实现Oracle查询分组的方法示例

    python实现Oracle查询分组的方法示例

    这篇文章主要介绍了python实现Oracle查询分组的方法,结合实例形式分析了python使用group by子句及having子句实现Oracle查询分组的相关操作技巧,需要的朋友可以参考下
    2020-04-04
  • pandas中DataFrame重置索引的几种方法

    pandas中DataFrame重置索引的几种方法

    在pandas中,经常对数据进行处理 而导致数据索引顺序混乱,从而影响数据读取、插入等,所以小编总结了几种索引重置的方法,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Python异步爬虫requests和aiohttp中代理IP的使用

    Python异步爬虫requests和aiohttp中代理IP的使用

    本文主要介绍了Python异步爬虫requests和aiohttp中代理IP的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • django实现模板中的字符串文字和自动转义

    django实现模板中的字符串文字和自动转义

    这篇文章主要介绍了django实现模板中的字符串文字和自动转义,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python分析apache访问日志脚本分享

    python分析apache访问日志脚本分享

    这篇文章主要介绍了python分析apache访问日志脚本分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • 自定义django admin model表单提交的例子

    自定义django admin model表单提交的例子

    今天小编就为大家分享一篇自定义django admin model表单提交的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08

最新评论