Python opencv 去除图像四周黑边的一种做法

这篇具有很好参考价值的文章主要介绍了Python opencv 去除图像四周黑边的一种做法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意,图像去黑边有很多种算法设计思路,具体能否起作用要视待处理图像的质量等因素来确定。

这里给出的思路为,将图像以黑白的形式读进去,利用opencv的connectedComponentsWithStats函数求连通域。那么对于有黑边的图像来说,图像由内容和黑边组成,因此最大的连通域就是内容本身,我们将其提取出来即可。

需要注意的是,由于连通性算法本身的原理,因此下面这套去黑边算法比较适用于未被压缩的原始图像(压缩图像过程中所引入的插值会影响连通算法的效果)。

假定输入图像如下:
最大连通域去除黑色边框,basic,划水
代码如下:

import cv2
import numpy as np
 
image = cv2.imread('img.png', cv2.IMREAD_GRAYSCALE)
num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(image)
print('num_labels: ', num_labels)
for i, st in enumerate(stats[1:]):
    x0 = st[0]
    y0 = st[1]
    x1 = st[0] + st[2]
    y1 = st[1] + st[3]
    image_show = np.copy(image)
    cv2.rectangle(image_show, (x0, y0), (x1, y1), (255, 255, 255), 3)
    cv2.imshow('labels', image_show)
    cv2.waitKey(0)
    image = image[y0:y1, x0:x1]
    cv2.imwrite('img_crop_' + str(i) + '.png', image)

bbox结果与去黑边结果如下。注意,如果正确检出的话,上述代码输出的num_labels应为2,即内容和黑边这两个连通域。感兴趣的读者可以自行对上述代码进行修改,例如将最大的连通域视为前景,从而提升算法的效果。
最大连通域去除黑色边框,basic,划水
最大连通域去除黑色边框,basic,划水文章来源地址https://www.toymoban.com/news/detail-653034.html

到了这里,关于Python opencv 去除图像四周黑边的一种做法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在Qt中解决opencv的putText函数无法绘制中文的一种解决方法

    在opencv中,假如直接使用putText绘制中文,会在图像上出现问号,如下图所示: 查了一些资料,说想要解决这个问题,需要用到freetype库或者用opencv5(详情请查看文末的参考资料)。但是我现在用的是opencv4,freetype库已经被移到opencv_contrib去了,用起来麻烦,而且用freetype的话

    2024年02月06日
    浏览(82)
  • Android去除折叠屏两边的黑边,默认全屏显示

    1、在AndroidManifest.xml中设置resizeableActivity为true sdk=24resizeableActivity默认为true,小于24位false 可以设置在application中,影响app全局 可以设置在activity标签,影响当前activity 2、设置max_aspect与min_aspect

    2024年04月23日
    浏览(33)
  • 使用OpenCV实现图像背景去除

    使用OpenCV实现图像背景去除 在图像处理领域,常常需要从原始图像中分离出某个对象,而去除背景是实现这一目标的一种基本方法。本文将介绍如何使用OpenCV库中的GrabCut算法来进行图像背景去除,并提供相应的Python代码。 GrabCut算法是一种基于图论的交互式前景提取算法,它

    2024年02月15日
    浏览(61)
  • 如何使用 OpenCV 去除图像背景

     文末附源代码的免费下载链接 在本教程中,我们将学习如何使用 OpenCV 使用一种名为背景减法的技术来去除视频中的背景。 背景扣除是计算机视觉中用于检测视频中移动物体的常用技术。对于安全、监视、交通监控等来说,这是一种非常有用的技术。 背景减法的基本思想是

    2024年02月14日
    浏览(40)
  • opencv -12 图像运算之按 《位或》 运算(图像融合&图像修复和去除)

    或运算的规则是,当参与或运算的两个逻辑值中有一个为真时,结果就为真。其逻辑关系可以类比为如图 所示的并联电路,两个开关中只要有任意一个闭合时,灯就会亮。 3-5 对参与或运算的算子的不同情况进行了说明,表中使用“or”表示或运算。 按位或运算是指将数值转

    2024年02月16日
    浏览(53)
  • python---------bs4爬取数据的一种神器

     欢迎小可爱们前来借鉴我的gtieehttps://gitee.com/qin-laoda Beautiful Soup的简介 解析⼯具对⽐ BeautifulSoup的基本使⽤ 解析器 搜索⽂档树 CSS常⽤选择器介绍 select和css选择器提取元素 _______________________________________________ 前面我已经介绍了正则表达式,下面我们来介绍bs4 Beautiful Soup是py

    2024年02月09日
    浏览(44)
  • opencv -11 图像运算之按位逻辑运算(图像融合&图像修复和去除)

    按位逻辑运算是一种对图像进行像素级别的逻辑操作的方法,使用OpenCV的按位逻辑运算函数可以对图像进行位与(AND)、位或(OR)、位非(NOT)和位异或(XOR)等操作。 通俗点就是将像素点的十进制值转成二进制 来运算 以下是一些常见的按位逻辑运算的应用场景: 图像融

    2024年02月17日
    浏览(43)
  • 如何在OpenCV中实现图像边缘保持和去除?

    图像边缘保持和去除是图像处理中的常见任务,用于增强图像的边缘特征或去除图像中的噪声和不必要的边缘信息。在OpenCV中,可以使用各种滤波器和技术来实现图像边缘保持和去除。本文将介绍在OpenCV中实现图像边缘保持和去除的方法,并提供相应的代码示例。 图像边缘保

    2024年02月03日
    浏览(39)
  • Python 实现Selenium录屏的一种方法(图片整合成动态图)

    由于UI层自动化的不稳定性,经常会遇到执行中断或用例失败的问题,以下是一些常见的措施。 1.详细的日志 2.定位出错时截图 3.Pytest的缓存机制(可以记录成功了哪些失败了哪些) 4.自动重试机制(如pytest-rerunfailures) 5.用例录像 用例录像是最直观的一种方式,可以查看到实时的

    2024年02月13日
    浏览(38)
  • <Python>PyQt5中UI界面和逻辑函数分开写的一种方式

    前言 如果经常使用PyQt5这种模块来编写带UI界面的程序,那么很自然的就会涉及到,一旦程序比较大,UI控件多的时候,需要将UI和逻辑程序分离,这样方便管理,也方便维护。 配置: 平台:windows 工具:visual studio code 语言:python 库:PyQt5 本文将提供一个简单但可用的实例,

    2024年02月02日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包