图像处理

python图像处理:pytesseract和PIL

人走茶凉 提交于 2020-02-26 07:22:50
大概介绍下相关模块的概念 : Python-tesseract 是光学字符识别Tesseract OCR引擎的Python封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等)并解码成可读的语言。在OCR处理期间不会创建任何临文件 PIL (Python Imaging Library)是 Python 中最常用的图像处理库,目前版本为 1.1.7,我们可以 在这里 下载学习和查找资料。 Image 类是 PIL 库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法。 python对图像的处理比较常见的是用pytesseract识别验证码,要安装pytesseract库,必须先安装其依赖的PIL及tesseract-ocr,其中PIL为图像处理库,而后面的tesseract-ocr则为google的ocr识别引擎。 下载链接:http://www.waitalone.cn/python-php-ocr.html 该链接文档描述了如何配置相关环境,以及识别验证码的python代码,总结起来就三步:安装PIL.exe;安装 tesseract-ocr-setup .exe;安装pip install pytesseract 1、识别图片简单的示例 1 import Image 2 import

计算机视觉——图像处理基础

风格不统一 提交于 2020-02-24 08:05:27
目录 1. PIL-Python图像库 1.1 图像灰度处理 代码实现 运行结果 1.2 调整尺寸及旋转 代码实现 运行结果 2. Matplotlib库 2.1 画图、描点和线 代码实现 运行结果 2.2 图像轮廓和直方图 代码实现 运行结果 3. NumPy库 3.1 灰度变换 代码实现 运行结果 3.2 直方图均衡化 代码实现 运行结果 4. SciPy模块 4.1 高斯模糊 代码实现 运行结果 1. PIL-Python图像库 1.1 图像灰度处理 代码实现 # -*- coding: utf-8 -*- from PIL import Image from pylab import * # 添加中文字体支持 from matplotlib.font_manager import FontProperties font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14) figure() pil_im = Image.open('D:\\python\pcv_data\data\empire.jpg') gray() subplot(121) title(u'原图',fontproperties=font) axis('off') imshow(pil_im) pil_im = Image.open

python — 图像处理基础

喜你入骨 提交于 2020-02-23 14:03:57
文章目录 一、图像轮廓与直方图 1. 图像轮廓 2. 直方图 3. 代码实现 二、高斯滤波 1. 高斯滤波 2. 代码实现 三、直方图均衡化 1.直方图均衡化 2. 代码实现 四、图像差分 五、图像模糊 总结: 环境:anaconda3,spyder。 一、图像轮廓与直方图 1. 图像轮廓 绘制图像的轮廓在工作中十分有用。因为绘制轮廓需要对每个坐标的像素值施加一个阈值,所以首先需要将图像灰度化。 2. 直方图 用来表征该图像像素值得分布情况。用一定的小区间来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。 hist()函数只接受一维数组作为输入,因此在绘制图像直方图前,必须对图像进行压平处理。 3. 代码实现 实验结果: 代码: # -*- coding: utf-8 -*- from PIL import Image from pylab import * # 添加中文字体支持 from matplotlib.font_manager import FontProperties font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14) im = array(Image.open('c:\house.jpg').convert('L')) # 打开图像,并转成灰度图像 figure

图像处理基础

雨燕双飞 提交于 2020-02-22 06:41:56
直方图/高斯录播/直方图均衡化/原理 文章目录 1.原理 1.1直方图原理 1.2高斯滤波原理 1.3直方图均衡化原理 2.实验 2.1原图 2.2直方图 2.3高斯滤波 2.4直方图均衡化 1.原理 1.1直方图原理 通过一个变换,将输入图像的灰度级转换为均匀分布度函数为 P s ( s ) = 1 L − 1 P_s(s) = \frac{1}{L-1} P s ​ ( s ) = L − 1 1 ​ 1.2高斯滤波原理 1.3直方图均衡化原理 s = T ( r ) = ( L − 1 ) ∫ 0 r P r ( c )   d c s = T(r) = (L-1)\int_0^r {P_r(c)} \,{\rm d}c s = T ( r ) = ( L − 1 ) ∫ 0 r ​ P r ​ ( c ) d c s s s 为变换后的灰度级, r r r 为变换前的灰度级 P r ( r ) P_r(r) P r ​ ( r ) 为变换前的概率密度函数 2.实验 2.1原图 2.2直方图 2.3高斯滤波 2.4直方图均衡化 来源: CSDN 作者: yuyaoshiniba 链接: https://blog.csdn.net/yuyaoshiniba/article/details/104422775

基于图像处理的印刷品缺陷质量检测(相关论文)

被刻印的时光 ゝ 提交于 2020-02-19 05:02:15
在工业上,产品的缺陷检测技术是一项非常重要的技术。而基于图像处理的缺陷检测技术是缺陷检测中的一个热门。下面是我在假期读的一些文章,总结如下: [1] Shankar N G , Ravi N , Zhong Z W . A real-time print-defect detection system for web offset printing[J]. Measurement, 2009, 42(5):645-652. [2] Peng X , Chen Y , Xie J , et al. An Intelligent Online Presswork Defect Detection Method and System[J]. International Conference on Information Technology & Computer Science. IEEE, 2010. [3] Ou Y O Y , Tao H T H , Xuan G X G , et al. An Automation System for High-Speed Detection of Printed Matter and Defect Recognition[J]. IEEE International Conference on Integration Technology.

Matlab图像处理教程系列之图像分割

牧云@^-^@ 提交于 2020-02-17 20:00:06
1. 点检测 g = abs(imfilter(tofloat(f), w)) >= T; f 是输入图像,w 是适合点检测的模板: ,g 是包含检测点的图像。imfilter 把输出转换为输入所属的类,如果输入是整数类,并且 abs 操作不接受整数数据,那么在滤波操作中用 tofloat(f)来防止对数值的过早截取。输出图像 g 是 logical 类;值是 0 和 1。如果 T 值没有给出,那么通常基于滤波结果来选取。在那种情况下,先前的一串指令分成三个基本步骤:1) 计算滤波后的图像 abs(imfilter(tofloat(f),w));2) 从滤波后的图像的数据中找出 T 的值;3) 把滤波后的图像与T做比较。 2.线检测 g = imfilter(tofloat(f), w); 其中w为线检测模板: 如果图中的第一个模板在图像上移动,就会对水平线(一个像素宽)的响应更强烈。对于恒定的背景,当线通过模板的中间一行时可能产生更大的响应。同样,图 中的第 2 个模板对+45°线响应最好,第 3 个模板对垂直线响应最好,第 4 个模板对 –45°线响应最好。注意,每个模板的优先方向都用比其他可能方向要大的系数加权。每个模板的系数之和为 0,这表明在恒定亮度区域中,模板的响应为 0。若每方向模板都应用于同一图像,其中一方向模板在图像中心点响应比其他模板在图像中心点响应都大

Matlab图像处理教程系列之图像分割(二)

若如初见. 提交于 2020-02-17 17:55:41
1.使用距离变换的分水岭分割 (1)距离变换 D = bwdist(BW); 二值图像的距离变换是指从每个像素到最接近零值的像素的距离。 (2)测地距离变换 D = bwdistgeodesic(BW,mask); 2.使用梯度的分水岭分割 获取梯度图像: h = fspecial('sobel'); fd = tofloat(f); g = sqrt(imfilter(fd, h, 'replicate') .^ 2 + ... imfilter(fd, h', 'replicate') .^ 2); 在使用针对分割的分水岭变换之前,常常使用梯度幅度对图像进行预处理。梯度幅度图像沿着物体的边缘有较高的像素值,而在其他地方则有较低的像素值。在理想的情况下,分水岭变换可得到沿物体边缘的分水岭脊线。若梯度图像直接进行分水岭变换可能会严重过分割,所以在计算分水岭变换之前可以先平滑梯度图像。 3.控制标记符的分水岭分割 (1)计算局部极小值区域 rm = imregionalmin(f); 其中,f 是灰度图像,rm 是二值图像,rm 的前景像素标记出局部小区域的位置。 (2)扩展极小值 im = imextendedmin(f,h); 其中,f 是灰度图像,h 是高度阈值,im 是一幅二值图像,im 的前景像素标记了深的局部小区域的位置。 (3)强制最小 mp = imimposemin

python 简单图像处理(5) 缩放

雨燕双飞 提交于 2020-02-17 08:26:31
好啦,在这里我要介绍图像的缩放啦 图像比例缩放是指将给定的图像在x轴方向按比例缩放,在y轴方向也按比例缩放,从而获得一幅新的图像。 如果两个方向上缩放比例相等,则为全比例缩放,否则为非全比例缩放 比例缩放用矩阵形式可表示为 代数式为 我们先来看图像的比例缩小变换 介绍两种简单的缩小变换方法: 基于等间隔采样的图像缩小方法 基于局部均值的图像缩小方法 基于等间距采样的图像缩小方法的设计思路是,对画面像素均匀采样来保持所选像素仍旧可以保持图像的特征 说白了,就是选择一些点,舍弃一些点,用选择的点组成一幅图,使它和原图差不多 若比例因子为m和n,原图的矩阵为f[M×N],缩小后的矩阵为g[(M*m)×(N*n)] 由于原图像素点多,映射到g后会出现多点对一点的现象 所以我们从g映射到f, 则有g(i,j) = f(i/m,j/n) 我们可以很快写出测试程序: import cvdef Reduce(image,m,n): H = int(image.height*m) W = int(image.width*n) size = (W,H) iReduce = cv.CreateImage(size,image.depth,image.nChannels) for i in range(H): for j in range(W): x = int(i/m) y = int(j/n)

图像处理和OpenCV初步

久未见 提交于 2020-02-16 08:04:02
图像从数学和计算机的角度理解就是一个 矩阵 ,矩阵中的每一个元素叫做 像素 ,又由于图像有灰度图像和彩色图像之分,所以图像在矩阵的基础上引入 通道(channel) ,其中色彩用数字来表示的时候,规定数字0表示黑色,数字255表示白色。 OpenCV角度来看图像 OpenCV中的 cv::Mat 类就是用来表示图像的矩阵而存在的,其中 cv::Mat 类由 头部 和 数据块 组成。 头部包含了矩阵的所有相关信息(大小、通道数量、数据类型等), cv::Mat 头部文件的某些属性(例如cols、rows 或 channels)。头部有一个指向 数据块的指针,即 data 属性。 数据块包含了图像中所有像素的值。 cv::Mat 有一个很重要的属性,即只有在明确要求时,内存块才 会被复制。实际上,大多数操作仅仅复制了 cv::Mat 的头部,因此多个对象会指向同一个数据块。这种内存管理模式可以提高应用程序的运行效率,避免内存泄漏, #include <iostream> #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> // 测试函数,它创建一幅图像 cv::Mat function() { // 创建图像 cv::Mat ima(500,500,CV_8U,50); // 返回图像 return ima; } int