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πσ21e2σ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的基本操作。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐