Opencv 学习笔记

1、(inRange)色彩空间转换:

HSV的各种颜色的最大最小值的参数值

2、模糊(卷积操作):
2.1、均值模糊:

# 均值模糊(可以去住随机噪声)
def blur_demo(image):
    dst = cv.blur(image, (5, 5))  # 第一个值是x方向,第二个值是y方向
    cv.imshow("blur_demo", dst)

2.2、中值模糊:

# 中值模糊(可以去除椒盐噪声)
def median_blur(image):
    dst = cv.medianBlur(image, 5)
    cv.imshow("median_blur", dst)

2.3、自定义卷积核产生的模糊:

# 自定义卷积核产生的模糊
def custom_blur_demo(image):
    kernal = np.ones([5, 5], np.float32) / 25
    dst = cv.filter2D(image, -1, kernel=kernal)
    cv.imshow("custom_blur_demo", dst)

2.4.1、高斯噪声(使图片产生古老的效果):

# 高斯模糊(图片产生古老的效果)
def gaussian_noise(image):
    h, w, c = image.shape
    for row in range(h):
        for col in range(w):
            s = np.random.normal(0, 20, 3)
            b = image[row, col, 0]  # blue
            g = image[row, col, 1]  # green
            r = image[row, col, 2]  # red
            image[row, col, 0] = clamp(b + s[0])
            image[row, col, 1] = clamp(g + s[1])
            image[row, col, 2] = clamp(r + s[2])
    cv.imshow("gaussian_noise", image)

2.4.2、高斯模糊(高斯模糊对高斯噪声有一定的抑制作用):

dst = cv.GaussianBlur(src, (0, 0), 5)
cv.imshow("gaussion_noise", dst)

通过对原图进行高斯噪声后产生的图像:
在这里插入图片描述
通过对高斯噪声图像进行高斯模糊后形成的图像:
在这里插入图片描述
3、边缘保留滤波(EPF):
3.1、高斯双边模糊:

def bi_demo(image):
    dst = cv.bilateralFilter(image, 0, 100, 15)
    cv.imshow("bi_demo", dst)

3.2、均值迁移模糊:

def shift_demo(image):
    dst = cv.pyrMeanShiftFiltering(image, 10, 50)
    cv.imshow("shift_demo", dst)

4、直方图(hist):
4.1、用matplotlib.pyplot:

def plot_demo(image):
    plt.hist(image.ravel(), 256, [0, 256])# ravel表示统计的频率数
    plt.show("直方图")

在这里插入图片描述
4.2、用Opencv:

def image_hist(image):
    color = ('blue', 'green', 'red')
    for i, color in enumerate(color):
        hist = cv.calcHist([image], [i], None, [256], [0, 256])
        plt.plot(hist, color=color)
        plt.xlim([0, 256])
    plt.show()

在这里插入图片描述
5、直方图应用:
5.1、全局直方图均衡化(可以图像增强,提高图像对比度):

def equal_Hist(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)#直方图均衡化只能用于灰度图
    dst = cv.equalizeHist(gray)
    cv.imshow("equal_Hist", dst

5.2、自适应(局部)直方图均衡化(相比全局,可以防止图像过度增强);

def clahe_Hist(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    clahe = cv.createCLAHE(clipLimit=5.0, tileGridSize=(8, 8))
    dst = clahe.apply(gray)
    cv.imshow("clahe_Hist", dst)

6、直方图反向投影技术(HSV色彩空间图像):
6.1、使用cv.imshow显示2d直方图代码:

def hist2d_demo(image):
    hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)
    hist = cv.calcHist([image], [0, 1], None, [180, 256], [0, 180, 0, 256])
    cv.imshow("hist2d", hist)

在这里插入图片描述
**显示效果为黑白色。
6.2、使用matplotlib.pyplot显示的2d直方图代码:

def hist2d_demo(image):
    hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)
    hist = cv.calcHist([image], [0, 1], None, [180, 256], [0, 180, 0, 256])
#   cv.imshow("hist2d", hist)
    plt.imshow(hist, interpolation="nearest")
    plt.title("2D Histogram")
    plt.show()

在这里插入图片描述
6.3、反向投影:
在这里插入图片描述
**效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值