'''识别图片文本坐标
'''
import cv2
import pytesseract
from pytesseract import Output
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import numpy as npdef recoText(im):"""识别字符并返回所识别的字符及它们的坐标:param im: 需要识别的图片:return data: 字符及它们在图片的位置"""data = {}d = pytesseract.image_to_data(im, output_type=Output.DICT, lang='chi_sim')for i in range(len(d['text'])):if 0 < len(d['text'][i]):(x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i])data[d['text'][i]] = ([d['left'][i], d['top'][i], d['width'][i], d['height'][i]])cv2.rectangle(im, (x, y), (x + w, y + h), (255, 0, 0), 1)# 使用cv2.putText不能显示中文,需要使用下面的代码代替cv2.putText(im, d['text'][i], (x, y-8), cv2.FONT_HERSHEY_SIMPLEX, 0.3, (255, 0, 0), 1)pilimg = Image.fromarray(im)draw = ImageDraw.Draw(pilimg)# 参数1:字体文件路径,参数2:字体大小font = ImageFont.truetype("simhei.ttf", 15, encoding="utf-8")# 参数1:打印坐标,参数2:文本,参数3:字体颜色,参数4:字体draw.text((x, y - 10), d['text'][i], (255, 0, 0), font=font)im = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)cv2.imshow("recoText", im)return dataif __name__ == '__main__':img = cv2.imread('D:\python course/tuxiangshibie\data/3.jpg')# cv2.imshow("src", img)data = recoText(img)print(data)cv2.waitKey(0)cv2.destroyAllWindows()

计算透视投影矩阵:

import cv2
import numpy as nppts = np.float32([[183,235],[643,465],[154,678],[477,675]])
pts1 = np.float32([[193,245],[653,475],[164,688],[487,685]])
M = cv2.getPerspectiveTransform(pts,pts1)
print(M)

求凸包坐标及其面积:

'''输入点集坐标,输出凸包顶点坐标
'''
# -*-coding:utf-8-*-
from math import sqrtsolution = []
def convex_hull(points: list):if len(points) <= 3:return pointsglobal solutionpoints.sort(key=lambda x: x[0])  # 按照横坐标排序left_most = points[0]right_most = points[-1]solution.extend([left_most, right_most])helper(points, left_most, right_most, True)helper(points, left_most, right_most, False)return solutiondef helper(points, left_most, right_most, upBool):""":param points::param left_most::param right_most::param upBool: 上包为True:return:"""global solutionif len(points) <= 1:returnl = line_helper(left_most, right_most)if upBool:up = []max_distance = 0max_point = ()for point in points:distance = 0 - (l[0] * point[0] + l[1] * point[1] + l[2]) / sqrt(l[0] * l[0] + l[1] * l[1])  # 与直线的距离if distance > 0:up.append(point)if distance > max_distance:max_distance = distancemax_point = pointif max_point != ():solution.append(max_point)helper(up, left_most, max_point, True)helper(up, max_point, right_most, True)else:down = []min_distance = 0min_point = ()for point in points:distance = 0 - (l[0] * point[0] + l[1] * point[1] + l[2]) / sqrt(l[0] * l[0] + l[1] * l[1])  # 与直线的距离if distance < 0:down.append(point)if distance < min_distance:min_distance = distancemin_point = pointif min_point != ():solution.append(min_point)helper(down, left_most, min_point, False)helper(down, min_point, right_most, False)def line_helper(point1, point2):"""计算距离:param point1::param point2::return:"""if (point1[0] - point2[0]) != 0:m = (point1[1] - point2[1]) / (point1[0] - point2[0])c = point1[1] - m * point1[0]return [m, -1, c]else:return [1, 0, point1[0]]def compute_polygon_area(points):  # 计算任意多边形的面积,顶点按照顺时针或者逆时针方向排列point_num = len(points)if(point_num < 3): return 0.0s = points[0][1] * (points[point_num-1][0] - points[1][0])#for i in range(point_num): # (int i = 1 i < point_num ++i):for i in range(1, point_num): # 有小伙伴发现一个bug,这里做了修改,但是没有测试,需要使用的亲请测试下,以免结果不正确。s += points[i][1] * (points[i-1][0] - points[(i+1)%point_num][0])return abs(s/2.0)if __name__ == '__main__':input_points = [(182, 151), (219, 201), (241.5, 246.75), (253.25, 297), (207, 329), (341.5, 422.5), (622.5, 498.25)]print("Input:", input_points)rst = convex_hull(input_points)print("Output", rst)polygon = rstprint('凸包面积是:', compute_polygon_area(polygon))

识别图片文本坐标;透视变换;输入点集坐标,输出凸包(最大多边形)顶点坐标相关推荐

  1. OpenLayers 获得多边形顶点坐标

    OpenLayers官网目前为止,并没有提供获取多边形顶点坐标的直接DEMO.各位小菜鸟是不是很心机如焚.满世界找不到答案,自我怀疑了呢?不要着急,在这里将会柳暗花明.看官请看: 1.通过debug可 ...

  2. PCL ——最小包围盒(画出了最小包围盒并求出顶点坐标)

    PCL --最小包围盒 2018年09月21日 15:31:01 不懂音乐的欣赏者 阅读数:35 标签: PCL包围盒外接矩形最小矩形收起 个人分类: PCL 1.包围盒简介   包围盒也叫外接最小矩 ...

  3. 四边形顶点坐标排序十字分割法

    有时候抠图等操作需要固定顺序的坐标点信息, 我习惯用 左上角开始,顺时针排列. 有时候我们拿到的坐标信息顺序不固定,甚至没有规律. 我用了大把时间捋出一点头绪,写了一个相当笨拙的代码. 期望有大神给出 ...

  4. matlab求球心坐标,已知四顶点坐标求四面体外接球球心坐标

    最近在做一个关于机器人标定的问题,发现求空间一点相对六轴机器人的坐标问题实际是一个求已知四顶点坐标求四面体外接球球心坐标的问题.首先控制机器人(携带工具)以四个不同姿态接触被测点,要注意四个姿态要保证 ...

  5. js知道顶点和底边中点坐标和长度,求等腰三角形其他两个顶点的坐标

    三角形已知一点和 其对边中点,求等腰三角形的其他两个点,分为三步: 1.先用直线y=ax+b算出斜率a和偏移量b 2.利用直线获得二次方程的系数 3.带入公式分别算出点的坐标,返回三个点的坐标 fun ...

  6. python 识图点击_Python图片识别找坐标(appium通过识别图片点击坐标)

    ***如果只想了解图片相似度识别,直接看第一步即可 ***如果想了解appium根据图片识别点击坐标,需要看第一.二.三步 背景|在做UI测试时,发现iOS自定义的UI控件,appium识别不到.所以 ...

  7. python屏幕找图_Python图片识别找坐标(appium通过识别图片点击坐标)

    ***如果只想了解图片相似度识别,直接看第一步即可 ***如果想了解appium根据图片识别点击坐标,需要看第一.二.三步 背景|在做UI测试时,发现iOS自定义的UI控件,appium识别不到.所以 ...

  8. python 文字识别 准确率_关于OCR图片文本检测、推荐一个 基于深度学习的Python 库!...

    大家好,我是 zeroing~ 1,前言 之前谈到图片文本 OCR 识别时,写过一篇文章介绍了一个 Python 包 pytesseract ,具体内容可参考 介绍一个Python 包 ,几行代码可实 ...

  9. Python技巧-只用一行代码轻松实现图片文本识别

    生活中我们可能会遇到需要从图片上获取文本内容的情况,人工去核对的话非常头疼.今天小千就来教大家使用Python一行代码就能实现文本识别,下面来看看吧. Python图片文本识别 这里我们需要用到两个库 ...

最新文章

  1. 【FFmpeg】结构体详解(一):AVCodec、AVCodecContext、AVCodecParserContext、AVFrame、AVFormatContext 、AVIOContext
  2. 自学python需要什么配置的电脑-入门学python需要什么配置的电脑?
  3. 【Noip模拟By yxj】
  4. JdbcTemplate和NamedParameterJdbcTemplate
  5. 微型计算机电源的选购应注意哪些问题,购买小功率ups电源的注意事项
  6. mysql 日期和时间函数_介绍一下mysql的日期和时间函数
  7. 哪些奇葩问题会让程序员抓狂?
  8. php用vscode开发,VSCode PHP开发
  9. 编写代码模拟三次密码输入的场景。
  10. python异常捕获try except
  11. 这份好用视频拼接的软件干货分享,值得收藏
  12. 想要成为大牛应该做到以下几点
  13. w3wp ash oracle,巧妙使用ASH信息
  14. video autoplay失效
  15. 失落的帝国攻略java,失落的帝国 --- 吴哥旅游日记(8)
  16. 基于jws发布webservice服务
  17. 虚幻5新特性之EnhancedInput
  18. linux压缩文件命令_24.gzip、unzip命令详解 - 钟桂耀
  19. overleaf 插入图片_Overleaf手册(三)--图片
  20. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬 宋红康版

热门文章

  1. 手机端口号怎么查看_手机文件怎样快速传输到电脑
  2. oracle缓冲池大小如何查询,如何确定日志缓冲区的大小?
  3. Python之数据处理案例
  4. aem.findapp.ApplicationNotFoundError: Local application 'Microsoft Excel.app' not found
  5. DeepMind 如何控制机器人
  6. 使用STM32内部ADC资源读取环境光传感器
  7. 又一款涉黄APP被警方捣毁:1万女用户竟然全是假的?!
  8. 类似美团的iOS地图定位及调用苹果系统导航
  9. Glibc:浅谈 malloc_consolidate() 函数具体实现
  10. 我写的一个以词搜图系统0.0.0版本