python+CV对图像的基本操作
opencv安装
在cmd下输入
pip install opencv-python
绘制直方图
直方图统计了图像像素的分布,但空间信息完全丧失。
import cv2
import matplotlib.pyplot as plt
im = cv2.imread("../jmuIma/t1.JPG", cv2.IMREAD_GRAYSCALE)
im = cv2.resize(im, dsize=(400, 300))
cv2.imshow("im", im)
plt.hist(im.ravel(), 256)
plt.show()
cv2.waitKey()
cv2.destroyAllWindows()
效果如下
高斯滤波
高斯滤波在去除高斯噪声方面非常有效
概率分布函数为:
G ( x , y ) = 1 2 π σ 2 ⋅ e − x 2 + y 2 2 σ 2 G(x, y)=\frac{1}{2 \pi \sigma^{2}} \cdot e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}} G(x,y)=2πσ21⋅e−2σ2x2+y2
import cv2
src = cv2.imread("../jmuIma/t2.JPG")
img = src.copy()
img = cv2.resize(img, dsize=(400, 300))
# 高斯滤波
img_gaussianBlur = cv2.GaussianBlur(img, (3, 3), 1)
# 显示图像
cv2.imshow("gauss", img)
cv2.imshow("gaussianBlur", img_gaussianBlur)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果对比如下
直方图均衡化
通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像细节。
import cv2
img = cv2.imread("../jmuIma/t3.JPG")
img = cv2.resize(img, dsize=(400, 300))
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("src", gray)
equal = cv2.equalizeHist(gray)
cv2.imshow("equal", equal)
cv2.waitKey(0)
结语
这些是计算机视觉学习中必须要掌握的基本功,大多是opencv的基本操作。