zoukankan      html  css  js  c++  java
  • 第一章 图像处理基础(直方图、高斯滤波、直方图均衡化)

    本次实验所用图片:

    软件:pycharm

    一、直方图

    import cv2 as cv
    from matplotlib import pyplot as plt
    import numpy as np
    
    
    path = '1.jpg'
    img = cv.imread(path, 0)
    plt.hist(img.ravel(), 256, [0, 256])
    
    plt.show()
    View Code

    运行上面的代码,可以得出图片的直方图:

     二、高斯滤波

    # coding=utf-8
    import cv2
    import numpy as np
    
    image = cv2.imread("1.jpg", 0)
    
    lut = np.zeros(256, dtype=image.dtype)  # 创建空的查找表
    
    hist, bins = np.histogram(image.flatten(), 256, [0, 256])
    cdf = hist.cumsum()  # 计算累积直方图
    cdf_m = np.ma.masked_equal(cdf, 0)  # 除去直方图中的0值
    cdf_m = (cdf_m - cdf_m.min()) * 255 / (cdf_m.max() - cdf_m.min())  # 等同于前面介绍的lut[i] = int(255.0 *p[i])公式
    cdf = np.ma.filled(cdf_m, 0).astype('uint8')  # 将掩模处理掉的元素补为0
    
    # 计算
    result2 = cdf[image]
    result = cv2.LUT(image, cdf)
    
    cv2.imshow("OpenCVLUT", result)
    cv2.imshow("NumPyLUT", result2)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    View Code

      上述代码分别用3×3和5×5的滤波器对图像进行滤波处理,通过比较中央像素与周围像素亮度的差值,改变中央像素的值为周围模糊半径内(3×3或5×5)像素点的平均值,显然,模糊半径越大,图像会变得更模糊。这样处理后的图片相比于原图片会变得更模糊,即模糊处理。

      效果图如下:

     

               3×3效果图                       5×5效果图

    仔细看可以看出5×5的效果较3×3的更模糊。

    三、直方图均衡化

    # coding=utf-8
    import cv2
    import numpy as np
    
    image = cv2.imread("1.jpg", 0)
    
    lut = np.zeros(256, dtype=image.dtype)  # 创建空的查找表
    
    hist, bins = np.histogram(image.flatten(), 256, [0, 256])
    cdf = hist.cumsum()  # 计算累积直方图
    cdf_m = np.ma.masked_equal(cdf, 0)  # 除去直方图中的0值
    cdf_m = (cdf_m - cdf_m.min()) * 255 / (cdf_m.max() - cdf_m.min())  # 等同于前面介绍的lut[i] = int(255.0 *p[i])公式
    cdf = np.ma.filled(cdf_m, 0).astype('uint8')  # 将掩模处理掉的元素补为0
    
    # 计算
    result2 = cdf[image]
    result = cv2.LUT(image, cdf)
    
    cv2.imshow("OpenCVLUT", result)
    cv2.imshow("NumPyLUT", result2)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    View Code

     

            灰度化处理               直方图均衡化处理后

     可以看出,图像经过直方图均衡化,图像增强。

  • 相关阅读:
    2011.9.27到某公司的Android面试(C/java/Android)题目总结
    Android点滴(9) Android 不显示标题栏和全屏的设置方法
    android点滴(11) Android常用命令
    android点滴(7) Linux Proc虚拟文件系统—Android CPU、内存、网络流量获取
    [CSharp]静态构造函数
    机械式和液压式轮胎定型硫化机的性能特点和选用
    Python操作MySQL的一个报错:IndexError: out of range
    C#代理类型学习记录(拷贝的代码哈哈)
    轮胎硫化机
    CP48″液压式轮胎定型硫化机
  • 原文地址:https://www.cnblogs.com/wenbozhu/p/10477992.html
Copyright © 2011-2022 走看看