① opencv 图像识别 c python哪个快
两者主要的区别在于接口和效率。
实际上Python和C++的OpenCV接口几乎一样,不同的是用C++的话,矩阵用的是cv::Mat,Python里面用的是numpy.array,用法和接口都不一样,但文档丰富,使用也非常方便,原理也相似。
效率方面,Python的接口实际上只是一层Binding,最终还是调用libopencv_*.so里面的函数,所以在OpenCV这一层效率与C++是完全一致的。唯一不同的就是它的numpy.array和cv::Mat。Numpy底层也是使用C Extension的方法写,但相比C++版的OpenCV接口,Python的接口需要把Numpy的数据转化成OpenCV的C接口可接受的输入。
实测Python写的程序会慢,但具体慢多少并没有测试数据可支撑。
用Python写实际上也不会比C++开发快多少,因为接口都是一样的,我建议不如直接用C++写。
简单说两句,选python还是C++,考虑下面几个问题
1. 性能压力在哪里?python的GIL使得多线程不能多核并行,必须用多进程,而且天生python要比c++慢一些。因此如果是cpu密集型,建议用C++,如果是IO密集型,python没有那么大的劣势。
2. 开发成本高还是运行成本高,一个开发人员一个月多少钱,一个服务器一个月多少钱,通常来说前者越来越贵而后者反之,权衡下利弊,C++开发要比python慢,在性能都达标的情况下,如果节省的服务器成本能抵过开发成本,用C++,反之用python。
1,差不多,基本调用参数都一样,格式符合各自语言规范。
2,在我开发的程序中python比cpp明显有差距,但是换到工作用的电脑上这个差距就看不错来了,so,硬件配置好一些,用python做实时也是没有问题的。外,感觉同样的函数python就是比cpp慢一些,虽然上面说到python底层用的也是lib。
3,基本一样。(python可能功能稍微差一点2.4.8版本有个函数没在python中找到,但是也就那一个)
4,python比较简单,开发可能快一点(主要是软件的其他部分可能比较容易开发)。
② 识别图片的python代码
网址403权限错误。
如果是个人网站,建议检查;如果仅仅是为了测试,建议将图片上传到图床上测试。
提问时建议隐藏API_ID和API_KEY,保护自己的信息。
③ Python如何图像识别
提取待检索电影的每一帧图像的局部敏感哈希 (Locality Sensitive Hashing; LSH) 特征, 并保存下来, 不妨称为库 (gallery). LSH 特征可以用整型来表示, 一般是6...
2.来了一张查询图像 (query), 也计算它的 LSH 特征. 然后与预先保存下来的库中的每个 LSH 特征都计算 Hamming 距离, 返回库中与查询图像 LSH 特征距离最小 (或距离小于指定阈值) ...
④ 如何python pil开发图像识别
1. 简介。
图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的 Python 当然不会错过这一门盛宴。PIL (Python Imaging Library)是 Python 中最常用的图像处理库,目前版本为 1.1.7,我们可以在这里下载学习和查找资料。
Image 类是 PIL 库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法。
2. 使用。
导入 Image 模块。然后通过 Image 类中的 open 方法即可载入一个图像文件。如果载入文件失败,则会引起一个 IOError ;若无返回错误,则 open 函数返回一个 Image 对象。现在,我们可以通过一些对象属性来检查文件内容,即:
1 >>> import Image
2 >>> im = Image.open("j.jpg")
3 >>> print im.format, im.size, im.mode
4 JPEG (440, 330) RGB
这里有三个属性,我们逐一了解。
format : 识别图像的源格式,如果该文件不是从文件中读取的,则被置为 None 值。
size : 返回的一个元组,有两个元素,其值为象素意义上的宽和高。
mode : RGB(true color image),此外还有,L(luminance),CMTK(pre-press image)。
现在,我们可以使用一些在 Image 类中定义的方法来操作已读取的图像实例。比如,显示最新载入的图像:
1 >>>im.show()
2 >>>
输出原图:
3.5 更多关于图像文件的读取。
最基本的方式:im = Image.open("filename")
类文件读取:fp = open("filename", "rb"); im = Image.open(fp)
字符串数据读取:import StringIO; im = Image.open(StringIO.StringIO(buffer))
从归档文件读取:import TarIO; fp = TarIo.TarIO("Image.tar", "Image/test/lena.ppm"); im = Image.open(fp)
基本的 PIL 目前就练习到这里。其他函数的功能可点击这里进一步阅读。
⑤ Python 图像识别 如何找出图像的中心点
用的 opencv 先灰度模糊,再二值化,找到图形轮廓最后确定中心点·~
⑥ 这种图片可以用Python自动识别吗
Python图片文本识别使用的工具是PIL和pytesser。因为他们使用到很多的python库文件,为了避免一个个工具的安装,建议使用pythonxy
pytesser是OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的文字转换成文本。pytesser调用了tesseract。当在Python中调用pytesser模块时,pytesser又用tesseract识别图片中的文字。pytesser的使用步骤如下:
首先,安装Python2.7版本,这个版本比较稳定,建议使用这个版本。
其次,安装pythoncv。
然后,安装PIL工具,pytesser的使用需要PIL库的支持。
接着下载pytesser
最后,将pytesser解压,这个是免安装的,可以将解压后的文件cut到Python安装目录的Lib\site-packages下直接使用,比如我的安装目录是:C:\Python27\Lib\site-packages,同时把这个目录添加到环境变量之中。
完成以上步骤之后,就可以编写图片文本识别的Python脚本了。参考脚本如下:
from pytesser import *
import ImageEnhance
image = Image.open('D:\\workspace\\python\\5.png')
#使用ImageEnhance可以增强图片的识别率
enhancer = ImageEnhance.Contrast(image)
image_enhancer = enhancer.enhance(4)
print image_to_string(image_enhancer)
tesseract是谷歌的一个对图片进行识别的开源框架,免费使用,现在已经支持中文,而且识别率非常高,这里简要来个helloworld级别的认识
下载之后进行安装,不再演示。
在tesseract目录下,有个tesseract.exe文件,主要调用这个执行文件,用cmd运行到这个目录下,在这个目录下同时放置一张需要识别的图片,这里是123.jpg
然后运行:tesseract 123.jpg result
会把123.jpg自动识别并转换为txt文件到result.txt
但是此时中文识别不好
然后找到tessdata目录,把eng.traineddata替换为chi_sim.traineddata,并且把chi_sim.traineddata重命名为eng.traineddata
ok,现在中文识别基本达到90%以上了
⑦ python图像识别需要哪些库
主流Python图像库:
1.opencv
2.PIL(pillow)
3.matplotlib.image
4.scipy.misc
5.skimage
⑧ python能做图像识别吗
可以,你可以用它做其余软件能实现的任何功能。大家长用他来处理数据,做深度学习。
⑨ 用python写识别图片主要颜色的程序
#-*-coding:utf-8-*-
importcolorsys
defget_dominant_color(image):
#颜色模式转换,以便输出rgb颜色值
image=image.convert('RGBA')
#生成缩略图,减少计算量,减小cpu压力
image.thumbnail((200,200))
max_score=None
dominant_color=None
forcount,(r,g,b,a)inimage.getcolors(image.size[0]*image.size[1]):
#跳过纯黑色
ifa==0:
continue
saturation=colorsys.rgb_to_hsv(r/255.0,g/255.0,b/255.0)[1]
y=min(abs(r*2104+g*4130+b*802+4096+131072)>>13,235)
y=(y-16.0)/(235-16)
#忽略高亮色
ify>0.9:
continue
#Calculatethescore,.
#Add0.1tothesaturationsowedon'tcompletelyignoregrayscale
#,butstillgivethemalow
#weight.
score=(saturation+0.1)*count
ifscore>max_score:
max_score=score
dominant_color=(r,g,b)
returndominant_color
if__name__=="__main__":
fromPILimportImage
importos
path=r'.\pics\'
fp=open('file_color.txt','w')
forfilenameinos.listdir(path):
printpath+filename
try:
color=get_dominant_color(Image.open(path+filename))
fp.write('Thecolorof'+filename+'is'+str(color)+' ')
except:
print"Thisfileformatisnotsupport"
fp.close()
pics文件夹和python程序在一个目录下,产生的文件名file_color.txt也在这个目录下。
看看能否帮到你
⑩ python3.5能用的图片识别库,可以识别图片上的英文数字和汉字
先看看你的Visual Studio 14 运行库(64位的系统X86/X64的最好都装上)是不是没有装,如果没有安装的话先装上;如果已经安装了的话,修复一下看看。如果还不行的话那就意味着这些库暂时还不支持Python 3.5.2,还得耐心等待或者使用其他能实现所需要功能的库。你可以试试下载EXE文件自己安装,或者下载源码自己编译。
我在我的电脑(XP/Python3.4.4)上用pip安装试了一下,tesseract-ocr安装不上,其他两个没有问题,估计暂时还不支持Python3.X吧。
tesseract-ocr的EXE安装包下载地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/?source=navbar
我没有尝试使用EXE安装包安装楼主可以自己尝试一下。
希望对楼主有帮助。