
Python 图像处理
文章平均质量分 83
Python 基于OpenCV库的图像处理
猿来这样1
编程圈子,谢厂节的博客
展开
-
OpenCV-Python学习笔记1 环境安装
1. 数字图像数字图像:将二维图像有限数字的数值像素表示。 每个像素点可有各自的颜色值,可用RGB或CMYK(青、品红、黄、黑)色域。 分辨率是度量图像内数据量多少的一个参数,通常表示成每英寸像素数和每英寸点数。2. pip安装OpenCV如果没有安装numpy,要先安装它:pip install -i https://pypi.douban.com/simple numpy到: http:原创 2017-07-16 10:30:15 · 956 阅读 · 1 评论 -
OpenCV-Python学习笔记2 变亮、变暗、日落、水印等
调节图像亮度调节原理:将像素值变小,全部色彩变暗;将像素值变大,全部色彩变亮。#-*- coding: utf-8 -*-import cv2import numpy as npfn = "test1.jpg"if __name__ =='__main__': print('loading... %s' % fn) print (u'显示原图') img = cv2.原创 2017-07-18 08:48:05 · 11723 阅读 · 1 评论 -
图像基础、OpenCV入门3——图像灰度化、二值化与图像加噪
图像灰度化方法1:求出每个像素点的RGB三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量 方法2:求RGB和YUV颜色空间的变化关系,建立亮度Y与RGB三个颜色分量的对应关系:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。OpenCV的cvtColor函数,可以直接完成灰度化操作。#-*- coding: utf-8 -*-import cv2import nu原创 2017-07-20 08:44:31 · 28747 阅读 · 5 评论 -
图像基础、OpenCV入门4——图像边缘算法
欧氏距离算法将当前像素与邻接的下部和右部的像素进行比较,如果相似,则将当前像素设置为白色,否则设置为黑色。 判定像素是否相似,使用欧氏距离算法,将一个像素的三个色彩分量映射在三维空间中,如果2个像素点的欧氏距离小于某个常数的阈值,就认为它们相似。代码# -*- coding: utf-8 -*-import cv2import numpy as npfn = 'test1.jpg'def g原创 2017-07-28 12:29:19 · 964 阅读 · 0 评论 -
图像基础5 图像匹配--差分矩阵求和与均值
本系列文章是学习《机器学习实践指南 案例应用分析 第2版》的笔记。 图像匹配算法是基于像素的比较和计算来实现的方法。1. 差分矩阵求和差分矩阵=图像A矩阵数据−图像B矩阵数据差分矩阵 = 图像A矩阵数据 - 图像B矩阵数据差分算法的核心在于差分矩阵,实质为差异矩阵。 算法过程是: 首先,计算两个图像的矩阵数据之间差异分析图像的相似性;然后,设置一个阈值进行比较,如果差分矩阵的所有元素之和在阈值原创 2017-07-28 23:51:30 · 2973 阅读 · 0 评论 -
图像基础6 图像匹配--欧氏距离匹配
一、 强噪声图像匹配上一节里,使用差分算法可以在弱噪声的情况下,有较好的匹配效果。在强噪声时,欧氏距离匹配方法相对于上面的方法会有更好的效果。程序:# -*- coding: utf-8 -*-import cv2import numpy as npdef get_EuclideanDistance(x, y): myx = np.array(x) myy = np.array原创 2017-07-29 21:39:22 · 6601 阅读 · 2 评论 -
图像基础7 图像分类——余弦相似度
图像分类利用计算机对图像进行分析,根据图像信息的不同特征,将不同类别的图像区分开来。算法过程 1. 准备样本图像。样本图像能代表所属类别中尽可能多的图像 2. 提取每个样本的特征后,形成类别特征码 3. 应用机器学习算法对类别特征码进行学习,提取特征包含的图像知识 4. 判断未知图像所属类别余弦相似度余弦相似度通过测量两个向量内积空间的余弦值来度量它们之间的相似性,尤其适用于任何维度原创 2017-07-30 16:47:59 · 19099 阅读 · 2 评论 -
图像基础8 图像分类——PCA 图像特征提取算法
本系列文章 源于《机器学习实践指南 案例应用解析》学习笔记 原书作者:麦好PCA (Principal Component Analysis),是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。 它可以用于图像矩阵降维,以降维后的矩阵为基础提取图像特征。当提取的图像特征维度比较高时,为了简化计算量以及存储空间,需要对这些高维数据进行一种程度原创 2017-07-31 13:12:56 · 9714 阅读 · 1 评论 -
图像基础9 插值与缩放
resize函数通过OpenCV的resize函数可实现插值与缩放。void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR ); 参数说明: - src 输入,原图像 - dst 输出,目标图像 - dsize 输出原创 2017-10-15 22:16:50 · 609 阅读 · 0 评论 -
图像基础10 比较图片是否一样
方法一 使用cv2 矩阵减subtract两个图片完全一样时返回值为true如果把一个图片转了格式,则会被为不一样import cv2import numpy as npfile2 = "1.jpg"file1 = "1.png"image1 = cv2.imread(file1)image2 = cv2.imread(file2)difference = cv2.subtract(原创 2017-10-16 22:02:28 · 5547 阅读 · 0 评论 -
图像基础11 仿射
学习资源《机器学习实践指南 案例应用解析》概念仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。[1] 仿射变换是在几何上定义为两个向量空间之间的一个仿射变换或者仿射映射(来自拉丁语,affine,“和…相关”)由一个非奇异的线性变换(运用一次函数进行的变换)接上一个平移变换组成。 在有限维的情况,每个仿射变换可以由一个矩阵A和一个向量b给原创 2017-10-17 07:56:42 · 580 阅读 · 0 评论 -
图像基础12 透视投影与透视变换
学习资源《机器学习实践指南 案例应用解析》原理三维计算机图形学中的一种重要的变换是透视投影。与平行投影沿着平行线将物体投影到图像平面不同,透视投影是指从投影中心这一点发出的直线将物体投影到图像平面上。这就意味着距离投影中心越远的投影越小,距离越近的投影越大。 详细的定义可参考百度百科。透视投影实例WarpPerspectiveOpenCV提供了WarpPerspective函数,可对图像进行透视变原创 2017-10-17 08:12:36 · 1890 阅读 · 0 评论 -
图像基础13 灰度变换与图像增强
学习资源《机器学习实践指南 案例应用解析》概念灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。 采用灰度变换法对图像进行处理可以大大改善图像的视觉效果。灰度变换法可以分为线性变换和非线性原创 2017-10-18 08:27:27 · 6011 阅读 · 0 评论 -
图像基础14 图像滤波与除噪——均一化块滤波(高斯、椒盐)
均一化块滤波1. 高斯噪声滤波高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。 高斯滤波(Gauss filte原创 2017-10-20 08:47:45 · 1201 阅读 · 0 评论 -
图像基础15 图像滤波与除噪——邻域平均法
本文学习资源《机器学习实践指南 案例应用解析》概述邻域平均法可有效消除高斯噪声,其数学公式如下: g(x,y)+1M∑(k.I)∈Sf(x−k,y−l)g(x,y)+\frac{1}{M}\sum_{(k.I)\in S}{f(x-k,y-l)}S为邻域,不包括(x,y)(x,y)本身的像素点,核h(x,y)h(x,y)可为: 半径为1: 14⎛⎝⎜010101010⎞⎠⎟\frac{1}{4原创 2017-10-23 08:45:31 · 12882 阅读 · 0 评论 -
图像基础16 图像滤波与除噪——中值滤波
本文学习资源来自《机器学习实践指南》 案例应用解析 中值滤波与邻域平均法类似,但计算的是中值,而不是平均值。具体算法是:将图像的每个像素用邻域(以当前像素为中心的正方形区域)像素的中值来代替。椒盐噪声median代码:# -*- coding: utf-8 -*-#code:# 中值滤波import cv2import numpy as npfn="test.jpg"myimg = cv原创 2017-10-26 08:03:38 · 958 阅读 · 0 评论 -
图像基础17 图像滤波与除噪——高斯滤波、双边滤波
高斯滤波本文学习资源来自《机器学习实践指南 案例应用解析》 代码:import cv2import numpy as np fn = "test.jpg"myimg = cv2.imread(fn)img = cv2.cvtColor(myimg , cv2.COLOR_BGR2GRAY)# 加上高斯噪声param = 20# 灰阶范围grayscale = 256w = img.sh原创 2017-10-26 08:40:40 · 1846 阅读 · 1 评论 -
图像基础18 人脸辨识——人脸定位
本文学习资源来自《机器学习实践指南 案例应用解析》 人脸辨识生物特征识别(BIOMETRICS) 技术,是指通过计算机利用人体所固有的生理特征(指纹、虹膜、面相、DNA等)或行为特征(步态、击键习惯等)来进行个人身份鉴定的技术。 ——百度百科 人脸识别属于生物特征识别技术中的一种。人脸定位OpenCV的接口可以实现人脸定位。cvHaarDetectObjects是opencv1中的函数,open原创 2017-10-27 09:34:38 · 6600 阅读 · 0 评论 -
图像基础19 人脸辨识——人脸识别
本文学习资源来自《机器学习实践指南》目的通过某人的一张照片,在他与别人的合影中找到他。算法描述读取两张图像,生成图像矩阵以两个图像矩阵为基础,调用OpenCV的相关函数完成人脸定位读取两张图像的人脸区域,生成人脸图像矩阵,并将人脸矩阵转换为灰度图比较分析人脸图像矩阵,找到最相近的人脸。欧氏距离算法在进行人脸识别是,可使用标准欧氏距离算法。算法基本原理是: 将标准欧氏距离算法作为比较分析人原创 2017-11-10 23:29:42 · 814 阅读 · 0 评论 -
图像基础20 人脸辨识——人脸识别2
本文学习资源来自《机器学习实践指南》 前一章节的图像特征码提取算法是基于像素点的三元色数值的,有时候,图像少量的像素点差异可能干扰识别结果。有两种算法可以使识别效果更好: 1. 将人脸图像大小设置为适当的数值(通常越小越好),这样更能突出人脸的特征,而略去很多干扰项。此外,提取原始特征组后,使用PCA降维技术对原始特征组进行进一步加工,生成最终的特征组,从而更好地表征人脸。 2. 在标准欧原创 2017-11-11 11:04:17 · 1387 阅读 · 0 评论 -
图像基础21 手写数字识别
本文学习资源来自《机器学习实践指南》在另一篇学习笔记里,记录了通过k-近邻算法识现的手写数字识别。 http://blog.youkuaiyun.com/xundh/article/details/73734509本文使用SVM算法。SVM在文本分类、手写文字识别、图像分类、生物序列分析等实际应用中表现出了非常好的性能。算法为每个数字各准备4个样本图像将图像调整为8*8尺寸,读取样本图像读取未知样本图像原创 2017-11-11 13:18:20 · 1425 阅读 · 0 评论 -
图像基础22 运动侦测
本文学习资源来自《机器学习实践指南》定义运动侦测,英文翻译为“Motion detection technology”,一般也叫移动检测,常用于无人值守监控录像和自动报警。通过摄像头按照不同帧率采集得到的图像会被CPU按照一定算法进行计算和比较,当画面有变化时,如有人走过,镜头被移动,计算比较结果得出的数字会超过阈值并指示系统能自动作出相应的处理。 —–百度百科视频采集示例中首先设置捕获设备,然后原创 2017-11-11 23:58:17 · 2151 阅读 · 0 评论 -
图像基础23 KNN 算法实现形状检测
另两篇关联文章: 优快云机器学习笔记十一 k-近邻算法 优快云机器学习笔记十二 k-近邻算法实现手写识别系统KNN算法介绍邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本原创 2017-11-13 09:06:36 · 1540 阅读 · 0 评论