python对图像的基本操作
一、常用的库

二、读取图像及其直方图
直方图原理:图像的直方图用来表征该图像像素值的分布情况。计算图像中的某种信息,例如像素值的多少,然后将数据分为若干个定义好的区间内。
def func1():
im = array(Image.open('D:\python\projects\计算机视觉\image\img1.jpg').convert('L')) # 打开图像,并转成灰度图像
gray() # 设置为灰度
subplot(121)
imshow(im)
subplot(122)
hist(im.flatten(), 128)
title(u'图像直方图', fontproperties=font)
plt.xlim([0, 260]) # 限制x和y
plt.ylim([0, 11000])
show()

三、图像高斯模糊
高斯模糊(高斯滤波):通过二维高斯函数和像素卷积得到模糊后的图像。

def func2():
im = array(Image.open('D:\python\projects\计算机视觉\image\img1.jpg').convert('L')) # 打开图像,并转成灰度图像
gray()
im2 = filters.gaussian_filter(im, 2)
im3 = filters.gaussian_filter(im, 5)
im4 = filters.gaussian_filter(im, 10)
subplot(131)
imshow(im2)
title(u'σ=2', fontproperties=font)
subplot(132)
imshow(im3)
title(u'σ=5', fontproperties=font)
subplot(133)
imshow(im4)
title(u'σ=10', fontproperties=font)
show()

四、图像和直方图均衡化
图像和直方图均衡化的原理可以归纳为将某个灰度映射到另一个灰度。

def func3():
im = array(Image.open('D:\python\projects\计算机视觉\image\img1.jpg').convert('L')) # 打开图像,并转成灰度图像
im2, cdf = imtools.histeq(im)
figure()
subplot(2, 2, 1)
axis('off')
gray()
title(u'原始图像', fontproperties=font)
imshow(im)
subplot(2, 2, 2)
axis('off')
title(u'直方图均衡化后的图像', fontproperties=font)
imshow(im2)
subplot(2, 2, 3)
axis('off')
title(u'原始直方图', fontproperties=font)
# hist(im.flatten(), 128, cumulative=True, normed=True)
hist(im.flatten(), 128)
subplot(2, 2, 4)
axis('off')
title(u'均衡化后的直方图', fontproperties=font)
# hist(im2.flatten(), 128, cumulative=True, normed=True)
hist(im2.flatten(), 128)
show()

本文介绍了Python中进行图像处理的一些基本操作,包括使用OpenCV库读取图像及其直方图,应用高斯模糊进行图像模糊处理,以及如何进行图像和直方图均衡化以改善图像对比度。通过实例代码展示了每个步骤,涵盖了从基础到进阶的图像处理技术。
685

被折叠的 条评论
为什么被折叠?



