学习笔记(02):一学即懂的计算机视觉(第一季)-实战演练:颜色空间分解
程序员文章站
2022-04-26 09:39:57
...
立即学习:https://edu.csdn.net/course/play/26281/327071?utm_source=blogtoedu
有没有人想买个光度计(照度计)? ^_^
图像空间实战代码如下:
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()