欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习笔记(02):一学即懂的计算机视觉(第一季)-实战演练:颜色空间分解

程序员文章站 2022-04-26 09:39:57
...

立即学习:https://edu.csdn.net/course/play/26281/327071?utm_source=blogtoedu

学习笔记(02):一学即懂的计算机视觉(第一季)-实战演练:颜色空间分解

有没有人想买个光度计(照度计)?  ^_^

图像空间实战代码如下:

import cv2 as cv

filename = "D:/python_test/lena.jpg"
img = cv.imread(filename)
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)  #颜色空间转换

cv.imshow("Hello,Lena!",img)
cv.imshow("gray",gray)

cv.waitKey()                                #关闭全部窗口继续向下执行
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)    #颜色空间转换

cv.imshow("Hue(色度)", hsv[:,:,0])
cv.imshow("Saturation(饱和度)", hsv[:,:,1])
cv.imshow("Value(明度)", hsv[:,:,2])

cv.waitKey()                                #关闭全部窗口继续向下执行
cv.imshow("Blue(蓝色)", img[:,:,0])
cv.imshow("Green(绿色)", img[:,:,1])
cv.imshow("Red(红色)", img[:,:,2])

cv.waitKey()                                #关闭全部窗口继续向下执行
cv.destroyAllWindows()

滤波函数实战代码如下:

import numpy as np
import cv2 as cv

# 原始图像加入彩色噪声(高斯噪声),mean:均值,var:方差
def gauss_noise(image, mean=0, var=0.001):
    image = np.array(image/255, dtype=float)
    noise = np.random.normal(mean, var ** 0.5, image.shape)
    out = image + noise
    if out.min()<0:
        low_clip = -1.
    else:
        low_clip = 0.
    out = np.clip(out, low_clip, 1.0)
    out = np.uint8(out*255)
    return out


filename = "D:/python_test/tree.png"
img = cv.imread(filename)
img = gauss_noise(img)                           #原图像加入高斯噪声,这里只用img一个参数即可

blur = cv.blur(img, (5,5))                       #平均滤波
gauss = cv.GaussianBlur(img, (5,5) ,0)           #高斯滤波
median = cv.medianBlur(img, 5)                   #中值滤波
bilateral = cv.bilateralFilter(img, 5, 150 ,150) #双边滤波

cv.imshow("Image(原始加噪后的图像)", img)
cv.imshow("Blurred(平均滤波后的图像)", blur)
cv.imshow("Gauss(高斯滤波后的图像)", gauss)
cv.imshow("Median filtered(中值滤波后的图像)", median)
cv.imshow("Bilateral filtered(双边滤波后的图像)", bilateral)

cv.waitKey()                                      #关闭全部窗口继续向下执行
cv.destroyAllWindows()

 

相关标签: 研发管理