我希望有人能够帮助我.
我有一对黑白图像是由扫描文本和大型扫描仪产生的(结果文件高达500M).扫描的文本几乎相同,我需要检查是否有任何实质性差异.
显然我不能逐个像素地进行比较,因为扫描到bmp的相同图像每次扫描时会给我一个稍微不同的结果.
有没有人知道我可以购买或下载的任何库 - 开源或纪念 - 并围绕它构建.NET应用程序.
预先感谢您的帮助.海伦.
我正在开发一个应用程序来识别圆形/椭圆形内的线状特征。形状如下所示(此处显示两个):

每个对象(超过 100 个)都将通过视频单独捕获;捕获是一个手动/物理过程(即我每次都拿着相机)。我可以完全控制相机,因此我可以在每次拍摄时始终如一地定位它。
现在我正在尝试使用 OpenCV 进行识别。我能够修改示例“人脸识别”应用程序以使用另一个 Haar 标识符 XML 文件,但这似乎只能处理外部圆/椭圆的检测。
我有兴趣为每个样本生成一个对象,以描述用于进一步处理的 5 条内部线:
{
1: { length: 20, avg_thick: 2.3 },
2: { length: 4, avg_thick: 2.0 },
3: { length: 9.1, avg_thick: 2.1 },
4: { length: 2, avg_thick: 1.9 },
5: { length: 17, avg_thick: 2.1 }
}
Run Code Online (Sandbox Code Playgroud)
这是我第一个涉及图像识别的项目。我应该使用/研究什么算法或程序来实现这一目标?谢谢!
更新:
由于图像将是手工拍摄的,因此它们不是纯黑/白。尝试应用阈值会使形状内的(假装)线条有时会消失。我怎样才能改善阈值结果?
opencv artificial-intelligence image-recognition edge-detection
我一直在尝试使用普通的tesseract 3 OCR使用不同的选项来从一个字母表中获取数据,我的学生将其标记为多个选择问题的答案,如下所示:

最好的输出之一是:
EEEEEEEEEEEEEEEEEEEEEEEEE
DDDDDDDDDDDDDDDDDDDDDDDDD
CCCCCCCCCCCCCCCCCCCCCCCCC
BBBBBBBEBBBBBBBBBBBBBBBBB
AAAAAAAAAAAAAAAAAAAAAAAAA
6789012345678901234567890
2222333333333344444444445
EEEEE EEEE EE EEE EEEEEEE
DDDDDD DDD DDDDDDDDDDDD
CCCCCCCCCCCCCCCCCC CCCCC
B BEBE BB BBBBBBBBBBBBBBB
AA AAA AAAAA AAAAAAAA
1234567890123455789012345
OOOOOOOOO1111111111222222
Run Code Online (Sandbox Code Playgroud)
我知道我可以解析.txt并获得更好的结果,但它错过了很多信息并得到了一些彩绘块的字母.
我想知道如何才能在这种情况下获得更好的结果.
我还希望有一个表格,其中绘制的块显示为不同的字符,例如,对于图像的第一行和第二行:
01 A B C - E 26 A B C D E
02 A - C D E 27 A B C D E
Run Code Online (Sandbox Code Playgroud)
如果你们有类似的经历,任何信息将不胜感激!提前致谢!
ocr tesseract pattern-recognition image-processing image-recognition
我的理解:SIFT描述符使用从16x16邻域像素计算的方向梯度的直方图.大图像中的16x16区域可以是非常小的区域,例如猫爪上的一根头发的1/10,当您将目标图像调整为小尺寸时,围绕相同关键点的16x16邻域可以是大部分的图像,例如猫的爪子使用SIFT描述符将原始图像与调整大小的图像进行比较是没有意义的,任何人都可以告诉我我的理解有什么问题吗?
我是文本提取的新手.当我尝试使用pytesseract从png图像中提取文本时
from PIL import Image
import pytesseract
s=Image.open('d:\\test.png')
print(pytesseract.image_to_string(s))
Run Code Online (Sandbox Code Playgroud)
我收到错误了
这是image(test.png)的问题.the test.png是一个号牌的图像.我应该安装其他任何东西.
我正面临一个具有挑战性的问题 我工作的公司的庭院是一个相机陷阱,拍摄每一个动作的照片.在其中一些图片中,有不同种类的动物(主要是深灰色小鼠)会对我们的电缆系统造成损害.我的想法是使用一些可以识别图片上是否有灰色鼠标的应用程序.理想情况下是实时的.到目前为止,我们已经开发出一种解决方案,可以为每个动作发送警报但大多数警报都是错 你能否提供一些关于如何解决问题的可能方法的信息?
real-time image-recognition video-processing computer-vision
我目前正在训练卷积神经网络,根据外观在腐烂的苹果和普通苹果之间进行分类.我有所有必要的数据,但是我对以下代码行有疑问.
epoch_x, epoch_y = tf.train.batch([resized_image, "Normal"], batch_size=batch_size)
Run Code Online (Sandbox Code Playgroud)
这为神经网络提供了图像和标签.我的问题是,我应该用所有批次的正常橙子训练网络,然后用腐烂的橙子训练神经网络吗?我是否应该轮流训练一批腐烂和正常的橘子?是否应该训练这些图像的特定顺序?
python machine-learning image-recognition neural-network conv-neural-network
显然,此图像非常清晰,因为它的清晰度很低并且不是真实的单词。但是,使用此代码,我无法检测到任何东西:
import pytesseract
from PIL import Image, ImageEnhance, ImageFilter
image_name = 'NedNoodleArms.jpg'
im = Image.open(image_name)
im = im.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
im.save(image_name)
text = pytesseract.image_to_string(Image.open(image_name))
print(text)
Run Code Online (Sandbox Code Playgroud)
输出
, Md?aod?amms
Run Code Online (Sandbox Code Playgroud)
这里有什么想法吗?我的对比功能生成的图像是:
哪个看起来不错?我没有大量的OCR经验。您会在这里建议什么预处理?我尝试过将图像调整为更大的尺寸,这有一点帮助,但还不够,还有一些来自PIL的不同滤镜。没什么特别接近的
python ocr image-recognition python-tesseract image-preprocessing
我尝试识别下图中的两个区域。内部区域内部以及外部和内部之间的区域 - 边界 - 使用 python openCV 进行圆化。
我尝试了不同的方法,例如:
这不太合适。
这对于经典图像处理来说是可能的还是我需要一些神经网络?
# import the necessary packages
import numpy as np
import argparse
import cv2
from PIL import Image
# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required = True, help = "Path to the image")
args = vars(ap.parse_args())
# load the image, clone it for output, and then convert it to grayscale
image = cv2.imread(args["image"])
output = …Run Code Online (Sandbox Code Playgroud) 我正在Amazon Textract API通过 AWS 的 Python API 使用 来从文档(pdf或jpg)中提取文本。我确实获得了其边界框的文本和坐标,但我也希望拥有字体类型(仅需要主要的字体类型:Arial、Helvetica、Verdana、Calibri、Times New Roman + 一些其他字体)。
有人有解决方案来获取该数据吗?
最好的解决方案可能是一个包,它接受小图像,返回字体类型名称,并且我可以在我的服务器上运行它。外部 API 很可能成本太高(金钱和时间方面),因为我必须在一秒钟内运行它 100 多次。
{'BlockType': 'LINE',
'Confidence': 99.81985473632812,
'Text': 'This is a text',
'Geometry': {'BoundingBox': {'Width': 0.7395017743110657,
'Height': 0.012546566314995289,
'Left': 0.12995509803295135,
'Top': 0.2536422610282898},
'Polygon': [{'X': 0.12995509803295135, 'Y': 0.2536422610282898},
{'X': 0.8694568872451782, 'Y': 0.2536422610282898},
{'X': 0.8694568872451782, 'Y': 0.2661888301372528},
{'X': 0.12995509803295135, 'Y': 0.2661888301372528}]},
'Id': '59f42615-7f33-41d2-9f3c-77ae5e4b6e7a',
'Relationships': ...}
Run Code Online (Sandbox Code Playgroud)
我实现了一个解决方案,它计算文本的比率width/height,并通过使用 Python 的枕头包和不同的字体类型以编程方式绘制相同的文本,然后比较比率来进行比较。然而,这种启发式方法常常会导致错误的结果。