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

菏泽网站建设培训学校电子商务平台经营者制定平台服务协议和交易规则时

菏泽网站建设培训学校,电子商务平台经营者制定平台服务协议和交易规则时,vs做的网站怎么放到iis中,专业的购物网站定制文章目录 概要基本概念读入图像图像二值化小结 概要 在处理OCR#xff08;Optical Character Recognition#xff0c;光学字符识别#xff09;时#xff0c;利用传统的图像处理方法进行字符切分仍然是一种有效的途径。即便当前计算机视觉领域主导的是卷积神经网络#xf… 文章目录 概要基本概念读入图像图像二值化小结 概要 在处理OCROptical Character Recognition光学字符识别时利用传统的图像处理方法进行字符切分仍然是一种有效的途径。即便当前计算机视觉领域主导的是卷积神经网络但对于一些相对简单的实际应用场景传统方法仍然表现出良好的效果。 在OCR任务中字符切分是一个关键的步骤它能够将整个文本图像分割成单个字符为后续的处理任务提供基础。传统图像处理方法可以通过一系列技术来实现字符的准确切分。这些技术可能包括但不限于 边缘检测 使用算子如Sobel、Canny检测图像中字符的边缘从而确定字符的边界。连通区域分析 通过标记和分析图像中的连通区域可以识别字符的位置和形状。投影法 水平和垂直投影可以帮助检测字符之间的间隔从而进行字符切分。轮廓分析 提取字符的轮廓信息进而判断字符的位置和形状。形态学操作 使用腐蚀、膨胀等形态学操作来调整字符的形状以便更好地进行切分。虽然卷积神经网络在图像处理任务中表现出色但在一些简单的场景中传统方法的实用性仍然很大。例如在文档扫描、数字识别等任务中通过合理运用传统图像处理技术可以快速、准确地完成字符切分为后续的OCR处理奠定基础。这种混合使用传统方法和深度学习技术的方式可以充分发挥各自的优势实现更全面、高效的图像处理任务。 基本概念 OCROptical Character Recognition全称光学字符识别是一项技术通过使用光学和图像处理技术将图像中的文字转换为可编辑的文本。 Segmentation在图像处理领域分割是指将整个图像分解为多个子部分的过程以便进行进一步的处理。 OCR Segmentation是指在光学字符识别过程中将包含文本的图像分解成多个小部分的操作。这旨在有效地识别图像中的文字并将其从背景中分离出来以便后续的OCR处理。通过分割系统可以更准确地定位和识别每个字符提高整体识别准确性。 读入图像 读入图像 一旦获得了包含文本的数字图像或者通过扫描仪将某些文档转换为数字图像进行存储就可以迈入下一步即预处理。在这个阶段可以使用以下代码来读入图像以便进行后续的处理。 import cv2# 读入图像 myImage cv2.imread(12.png)# 显示图像 cv2.imshow(Text Image, myImage) cv2.waitKey(0) 图像二值化 在开始分割文本图像之前需要经过一系列预处理步骤其中之一是图像的二值化。这个过程包括以下步骤 灰度化 首先将输入图像转换为灰度图像。这一步的目的是简化图像使系统能够更轻松地识别图像中的不同形状同时去除颜色信息从而减少处理的复杂性。这通常通过将图像中的每个像素的彩色信息转化为相应的灰度值来实现。 import cv2# 读入图像 myImage cv2.imread(12.png)# 灰度化 grayImage cv2.cvtColor(myImage, cv2.COLOR_BGR2GRAY)# 二值化 _, binaryImage cv2.threshold(grayImage, 128, 255, cv2.THRESH_BINARY)# 显示图像 cv2.imshow(Binary Image, grayImage) cv2.waitKey(0) 二值化 一旦图像变为灰度图接下来的关键步骤是将其二值化。这意味着将图像中的像素值转换为两个可能的值之一通常是0和255。这样的二值图像使得文字与背景更为明显为后续的字符切分和识别提供了更好的基础。 这个可以根据自己的修改转换颜色。 _, binaryImage cv2.threshold(grayImage, 128, 255, cv2.THRESH_BINARY)import cv2 # 读入图像 myImage cv2.imread(12.png) # 灰度化 grayImage cv2.cvtColor(myImage, cv2.COLOR_BGR2GRAY) # 二值化 _, binaryImage cv2.threshold(grayImage, 128, 255, cv2.THRESH_BINARY) # 显示图像 cv2.imshow(Binary Image, binaryImage) cv2.waitKey(0)import cv2# 读入图像 myImage cv2.imread(12.png)# 灰度化 grayImage cv2.cvtColor(myImage, cv2.COLOR_BGR2GRAY)# 二值化 ret, thresh cv2.threshold(grayImage, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV) # 形态学操作 horizontal_kernel cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18)) dilation cv2.dilate(thresh, horizontal_kernel, iterations1)# 显示图像 cv2.imshow(Dilated Image, thresh) cv2.waitKey(0) 接着可以选择并使用多种算法从上述二值图像中提取信息例如直方图均衡、傅立叶变换、形态学等。 形态学操作 import cv2# 读入图像 myImage cv2.imread(12.png)# 灰度化 grayImage cv2.cvtColor(myImage, cv2.COLOR_BGR2GRAY)# 二值化 ret, thresh cv2.threshold(grayImage, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV) # 形态学操作 horizontal_kernel cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18)) dilation cv2.dilate(thresh, horizontal_kernel, iterations1)# 显示图像 cv2.imshow(Dilated Image, dilation) cv2.waitKey(0) 查找轮廓 接着需要找到轮廓线这样才能将图像与背景逐行分离。 为了清楚换红色线条标注可以修改这段代码更换颜色 rect cv2.rectangle(myImage, (x, y), (x w, y h), (0, 0, 255), 1) # 红色矩形import cv2# 读入图像 myImage cv2.imread(12.png)# 灰度化 grayImage cv2.cvtColor(myImage, cv2.COLOR_BGR2GRAY)# 二值化 ret, thresh cv2.threshold(grayImage, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV)# 形态学操作 horizontal_kernel cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18)) dilation cv2.dilate(thresh, horizontal_kernel, iterations1)# 查找轮廓 horizontal_contours, hierarchy cv2.findContours(dilation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)# 在原始图像上绘制红色矩形 for cnt in horizontal_contours:x, y, w, h cv2.boundingRect(cnt)rect cv2.rectangle(myImage, (x, y), (x w, y h), (0, 0, 255), 1) # 红色矩形# 显示图像 cv2.imshow(Image with Red Rectangles, myImage) cv2.waitKey(0) 单词和字符分割 接着我们通过以下步骤对裁剪出的轮廓子图进行单词分割 1-预处理灰度、阈值 2-形态学算法 3-找到边界并绘制它们 4-进入单个字符分割 进而我们将对输出图像中的每个单词再次重复相同的步骤进行单个字符的分割 1-预处理灰度、阈值 2-形态学算法 3-找到边界并绘制它们 4-停止 最终我们得到的结果如下。 代码 import cv2# 读入图像 myImage cv2.imread(12.png)# 灰度化 grayImage cv2.cvtColor(myImage, cv2.COLOR_BGR2GRAY)# 二值化 ret, thresh cv2.threshold(grayImage, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV)# 形态学操作 horizontal_kernel cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18)) dilation cv2.dilate(thresh, horizontal_kernel, iterations1)# 查找轮廓 horizontal_contours, hierarchy cv2.findContours(dilation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)# 在原始图像上绘制红色矩形和进行字符分割 for cnt in horizontal_contours:x, y, w, h cv2.boundingRect(cnt)# 绘制红色矩形rect cv2.rectangle(myImage, (x, y), (x w, y h), (0, 0, 255), 1)# 在水平轮廓区域内进行字符分割roi thresh[y:y h, x:x w]# 进行字符分割的额外步骤例如形态学操作、查找字符轮廓等char_kernel cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))char_dilation cv2.dilate(roi, char_kernel, iterations1)char_contours, _ cv2.findContours(char_dilation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 在原始图像上绘制字符的边界for char_cnt in char_contours:char_x, char_y, char_w, char_h cv2.boundingRect(char_cnt)char_rect cv2.rectangle(myImage, (x char_x, y char_y), (x char_x char_w, y char_y char_h),(0, 255, 0), 1)# 显示图像 cv2.imshow(Image with Red Rectangles and Character Boundaries, myImage) cv2.waitKey(0)小结 在传统图像处理中如何利用常见的形态学方法进行字符轮廓查找从而实现字符的切分。通过提供相应的代码实现展示了在一些字符分布简单、字符间隔较大的场景下该方法能够取得一定的效果。然而由于采用传统方案该方法的泛化性较为有限。在面对更复杂的场景时可以考虑借助神经网络等先进技术以实现更加鲁棒和适用于多种情况的字符切分算法。
http://www.dnsts.com.cn/news/71344.html

相关文章:

  • 网站布局的三种基本方法自学网站建设视频
  • 扬州网站建设系统开发需求
  • 云适配 网站大网站
  • 做网站导航cms公司网站主页模板
  • 商业网站的基本构成太仓有专门做网站的地方吗
  • 婴儿做相册的网站哈尔滨建设部网站
  • roseonly企业网站优化共享虚拟主机普惠版做网站
  • 咸宁哪个企业没有做网站做网站 花时间
  • 怎么做公司招聘网站做外贸可以在哪些网站注册
  • DW做注册网站苏州大学网站建设
  • 网站基础建设找别人做网站交货时应该注意什么
  • 网站建设外包质量进度跟进广州冼村旧改最新消息
  • 自定义优定软件网站建设买个网站多少钱
  • 网站建设方案书一定要有吗黄石网站建设多少钱
  • 阿里网站搭建国内平面设计公司
  • 承德做网站设计的深圳创业补贴政策2021
  • 东莞做网站公司哪家比较好本地佛山企业网站建设
  • 有域名后续怎么做网站怎么在百度上建立网站
  • 网站开发项目预算表自己怎么申请网站空间
  • 江苏网站建设费用网上做兼职网站有哪些
  • 花店网站建设文案秦皇岛在建工程项目
  • 大型网站后台登录地址一般是如何设置的网站建设登录注册怎么做
  • 用织梦同时做两个网站制作外贸型网站
  • 个人网站怎么建网站制作网站建设案例
  • 章贡区综合网站建设商家开鲁视频
  • 购物分享网站模板高端集团网站建设
  • 佛山自助建站软件专业的医疗行业网站模板
  • 大连建站企业网站的优化和推广方案怎么写
  • 杭州观建设计网站哈尔滨中小企业网站制作
  • 大型网站的优化方法iis7.5配置网站