python安装
在python官网下载python之后进行变量配置
- 找到此电脑,右击选择属性
- 点击高级系统设置,环境变量
- 在系统变量中找到path,双击打开
将python的路径添加进去(此路径为python安装的路径)
点击确认即可(若添加成功,python查找不出,重启电脑)
成功后在命令行输入python
opencv介绍
OpenCV 是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows、 Android 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时 提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV 目前主要用 C++语言开发,它的主要接口也是 C++语言封装,但是依然保留了大量的 C 语言接口。该库也有大量的 Python、Java and MATLAB/OCTAVE(版本 2.5)的接口。这些语言的 API 接口函数可以通过在线文档获得。如今也提供对于 C#、Ch、Ruby,GO 的支持
下载完opencv后解压
找到自己的x64/vc14/bin,复制该目录的路径加到你的环境变量中
1、直方图和直方图均衡化
1.1 直方图
直方图又称质量分布图,它是表示资料变化情况的一种主要工具。用直方图可以解析出资料的规则性,比较直观地看出产品质量特性的分布状态,对于资料分布状况一目了 然,便于判断其总体质量分布情况。
测试代码:
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
def histogram_demo(image):
plt.hist(image.ravel(), 256, [0, 256])
plt.show()
image = cv.imread('xlx.jpg', 1)
cv.imshow('souce image', image)
histogram_demo(image)
cv.waitKey(0)
cv.destroyAllWindows()
1.2 直方图均衡化
直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布变成近似均匀分布,从而增强图像的对比度。
测试代码:
import cv2
import numpy as np
img = cv2.imread("xlx.jpg", 1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("src", gray)
dst = cv2.equalizeHist(gray)
cv2.imshow("dst", dst)
cv2.waitKey(0)
2、高斯滤波、
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
原理
图像大多数噪声均属于高斯噪声,因此高斯滤波器应用也较广泛。高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像去噪。
可以简单地理解为,高斯滤波去噪就是对整幅图像像素值进行加权平均,针对每一个像素点的值,都由其本身值和邻域内的其他像素值经过加权平均后得到。
高斯滤波的具体操作是:用一个用户指定的模板(或称卷积、掩膜)去扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
测试代码:
import cv2
import numpy as np
img = cv2.imread("xlx.jpg", 1)
cv2.imshow("src", img)
dst = cv2.GaussianBlur(img,(5,5),0)
cv2.imshow("dst", dst)
cv2.waitKey(0)