【问题标题】:OpenCV: Add text to image and get the bounding box of each letterOpenCV:将文本添加到图像并获取每个字母的边界框
【发布时间】:2017-09-01 22:07:25
【问题描述】:

我阅读了 OpenCV 函数 putText() 的文档。我找不到任何参数或返回值来说明每个打印字母的位置。

是否有一些 OpenCV API 在向图像添加文本时提供这些数据,或者可能在一些不同的库中?

【问题讨论】:

  • 您想将文本写入图像,然后找到该文本的轮廓?
  • 没有。我想要比findCountours() 更准确的东西——文本可以是手写的,这样轮廓就无法完成这项工作。我只是想知道打印在图像上的每个字符的边界框
  • 但是你是在打印还是文本已经打印在图像上?
  • 也许有一个选项可以模仿putText() 所做的事情,然后在控制打印内容的同时,将所有框保存到某个地方?
  • 我自己打印,想知道每个字符的边界框

标签: opencv


【解决方案1】:

您可以通过以下方式计算您放置在图像上的文本的宽度和高度:

cv::Size textSize = cv::getTextSize(text, fontFace, fontScale, thickness, &baseline);

检查例如here

【讨论】:

  • 它计算整个字符串的宽度和高度,但是,鉴于此信息,我将能够逐个字符地打印它们,并始终使用最后一个字符的宽度更新偏移量。谢谢!可能会很有帮助!
  • @SomethingSomething 是的,就是这样。很高兴我能帮上忙。
  • 对于手写文本,可能会断开字母,但对我的需求可能没有那么有害
  • @SomethingSomething 如果您发布带有您选择的文字的图片,它会给我们一个更好的主意。
【解决方案2】:

看看我的回答,代码可能对你来说很有趣:Detect space between text (OpenCV, Python)

用于识别手写文本并在给定图像上做 ROI。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 2012-11-02
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2018-10-06
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多