当前位置: 首页 > 知识库问答 >
问题:

从图像中提取对象

齐英朗
2023-03-14

我有车牌图像(图像像这些示例图像一样被裁剪)。我只想从输入图像中提取印版。

我已经应用了OpenCV Canny边缘检测器,但我不能再进一步了。有人能帮我吗?

我的最终目标是用我的公司标志替换这个标牌。

车牌图像示例:

共有1个答案

谈桐
2023-03-14

有很多不同的方法。如果使用cv2.Canny()提取了边,则可以使用cv2.findContours()提取轮廓。一旦你有了它,你就可以用cv2.drawContours()画出图版,或者制作一个轮廓的遮罩,然后添加你的徽标等。

您可以尝试使用cv2.threshold()和轮廓搜索将裁剪区域转换为二值图像,而不是精明的边缘检测。您甚至可以添加一些标准来定义正确的轮廓,如它所占的面积、轮廓周长、高度、长度等。

例如:

import cv2
import numpy as np

img = cv2.imread('license.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, threshold = cv2.threshold(gray,170,255,cv2.THRESH_BINARY)
_, contours, hierarchy = cv2.findContours(threshold, cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)

for cnt in contours:
    size = cv2.contourArea(cnt)
    perimeter = cv2.arcLength(cnt,True)
    x,y,w,h = cv2.boundingRect(cnt)
    if 10000 > size > 1000 and w < 140 and h > 50 and perimeter < 360:
        cv2.drawContours(img, [cnt], 0, (255,255,255), -1)

cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

希望它能对你有所帮助,或者给你一个关于这个问题的新观点。干杯!

 类似资料:
  • 让我们以whalesay图片为例<代码>docker history显示以下内容: 我想提取显示为的层。有这样做的工具/方法吗?

  • 假设我的用户去了他们办公室的扫描仪。扫描仪能够生成扫描文档的PDF。这基本上就是我拥有的文件类型。 我想做的是从这个PDF中提取文本。这不是“第一代”pdf,因为文本没有嵌入到pdf中。文本嵌入在PDF中的图像中。 PDFBox的iText中是否有允许检索此数据的功能?如果可能的话,我正在尝试避免对图像进行OCR。我希望IText或PDFBox中有一些内置的东西可以做到这一点。 请注意,我不是在谈

  • 我知道以前也有人问过类似的问题,但是这些问题已经过时了(有些问题可以追溯到2006年)。 我有一个. net 3.5应用程序(w/iTextSharp 5),我正在转换为. net核心(iText 7),它从联邦快递跟踪文档中提取签名,通过SOAP服务以字节[]数组发送。这段代码多年来一直运行良好,只是略有更新。从联邦快递返回的PDF文档中有几个图像,但签名块不是110x46图像(这是pdf文件中

  • 我正在reddit API中寻找示例。我想从某个subreddit(http://www.reddit.com/r/VillagePorn)中提取图像并将它们放在网页上。我见过其他网站这样做(主要是),我不知道怎么做。 我试过,但只返回图片的缩略图。甚至链接本身也没有。 我该怎么办?

  • 你知道这个错误的原因是什么吗?

  • 问题内容: 我正在尝试将所有图像元素匹配为字符串, 这是我的正则表达式: 这可行,但是我想提取所有图像。因此,当我在此String上执行正则表达式时: 它返回: 问题答案: 您需要使用捕获组来提取URL,并且如果要全局匹配(即,不止一次),则在使用捕获组时,需要循环使用(在全局匹配时忽略捕获组)。 例如