当前位置: 首页 > wzjs >正文

北京建设工程建设交易信息网站数据推广公司

北京建设工程建设交易信息网站,数据推广公司,wordpress中文手册下载,wordpress /?p=29具体实现思路: 提取行区域:先通过轮廓或空白区域分割出每行数字。确保每行是一个整体:在提取每行时,确保提取区域的宽度包含该行所有的数字(即避免单独分割每个数字)。保存每一行作为一张图片:…

具体实现思路:

  1. 提取行区域:先通过轮廓或空白区域分割出每行数字。
  2. 确保每行是一个整体:在提取每行时,确保提取区域的宽度包含该行所有的数字(即避免单独分割每个数字)。
  3. 保存每一行作为一张图片:确保每行的区域保持原样,保存为单张图片。
  4. 获取轮廓并按 y 坐标排序:先找到所有数字的轮廓,并按 y 坐标从上到下排序。这样可以确保我们从上到下处理每一行。

  5. 合并相邻行:当检测到当前行的 y 坐标与前一行的 y 坐标非常接近时,认为它们属于同一行,可以将这两个区域合并成一张图片。

  6. 分割行并保存:将属于同一水平线的多个区域合并成一个区域后,保存为一张新的图片。

import cv2
import numpy as np# 读取图片
image = cv2.imread('image.png')# 转为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 二值化图像,使得文字变为白色,背景变为黑色
_, thresh = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY_INV)# 查找轮廓(可以忽略背景,集中在文字区域)
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 按照y坐标排序(从上到下)
contours = sorted(contours, key=lambda ctr: cv2.boundingRect(ctr)[1])# 设定一个阈值,用于判断是否为同一行(水平对齐)
y_threshold = 10  # 根据实际情况调整,表示两行之间的最大间距# 初始化一个空列表,用于存储行的图片
row_images = []
current_row = []# 遍历所有轮廓
for i, contour in enumerate(contours):x, y, w, h = cv2.boundingRect(contour)# 过滤掉噪音区域(高度过小的区域)if h > 20:# 如果当前行是空的,或者当前行的y坐标和上一行的y坐标相差较小(认为是同一行)if not current_row or abs(current_row[-1][1] - y) < y_threshold:# 将当前轮廓的区域加入当前行current_row.append((x, y, w, h))else:# 如果是新的一行,则合并上一行的图片并清空当前行if current_row:# 计算当前行的左上角和右下角,合并所有小块区域x_min = min([rect[0] for rect in current_row])y_min = min([rect[1] for rect in current_row])x_max = max([rect[0] + rect[2] for rect in current_row])y_max = max([rect[1] + rect[3] for rect in current_row])# 裁剪出当前行的完整图像row_image = image[y_min:y_max, x_min:x_max]row_images.append(row_image)# 重置当前行,添加当前轮廓current_row = [(x, y, w, h)]# 最后处理剩余的行
if current_row:# 合并最后一行x_min = min([rect[0] for rect in current_row])y_min = min([rect[1] for rect in current_row])x_max = max([rect[0] + rect[2] for rect in current_row])y_max = max([rect[1] + rect[3] for rect in current_row])row_image = image[y_min:y_max, x_min:x_max]row_images.append(row_image)# 保存每一行作为图片
for i, row_image in enumerate(row_images):cv2.imwrite(f'row_{i+1}.png', row_image)

原图:

实现效果

http://www.dtcms.com/wzjs/838715.html

相关文章:

  • 企业网站管理中心事业单位门户网站开发
  • 凡科建站代理商内贸在什么网站做
  • 网站建设需要建站公司沟通哪些设计色彩网站
  • 新手做网站推荐汕头做网站公司哪家好
  • 做网站的项目流程网页设计图片外链
  • 企业网站手机版模板优化落实新十条措施
  • 如何用vs2010做网站企业oa管理软件
  • wordpress实现圈子功能北京专业的网络seo
  • 建设网站怎么赚钱品牌网站建设怎么样
  • 徐州网站建设托管网络公司最怕怎么投诉
  • 做外贸需要几个网站广西住房及城乡建设厅网站
  • 有网站源码怎么搭建网站网站开发大数据
  • 做网站最小的字体是多少钱hexo建设网站
  • 深圳网站建设哪个平台好网站开发主流框架
  • ftp怎么上传文件到网站wordpress置顶插件
  • 江苏省城乡与建设厅网站首页短网址服务平台
  • 网站制作基本规则wordpress板娘插件
  • 网站底部版权信息字体设计网站大全
  • 扬中网站建设价格织梦高端大气网站模板
  • 一元夺宝网站制作视频网站通栏设计素材
  • 富阳建设局网站电话58同城网站建设 推广
  • 自由贸易区的建设网站昆明企业网站建设公司
  • 做公众号编辑用什么网站怎么建设个人主页网站
  • 五路居网站建设c2c模式流程图
  • 上海建站网站建设美容网站模版
  • php做的网站好不好电脑版 做网站尺寸
  • dede苗木网站模板青岛做网站的公司
  • 整站seo免费咨询口腔医院网站开发
  • 学设计去哪个学校好网站模板 seo
  • 企业网站不被百度收录专业的网站开发建访