OpenCV的卷积核处理

1、计算机视觉的三种不同色彩空间

OpenCV中可以操作和使用的色彩空间有上百种之多,,但是对于计算机视觉处理来说,一般常用的色彩空间有三种,即灰度、BGR以及HSV

灰度:  将图片中的彩色信息去除只保留黑白信息的色彩空间。一般而言灰度空间对人脸的处理特别有效

BGR:即蓝绿红空间。在这个空间中,每个像素都是由一个三维数组表示,分别代表蓝、绿、红这三种颜色。

HSV: H是色调,S是饱和度 ,V是黑色度,一般用在数字相机对彩色图片的处理

 

2、卷积核与图像特征提取

在 OpenCV 甚至于平常的图像处理中,卷积核是一种最常用的图像处理工具。其主要是通过确定的核块来检测图像的某个区域,之后根据所检测的像素与其周围存在的像素的亮度差值来改变像素明亮度的工具

 

例如:

kernel33=np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])

这是一个[3,3]的卷积核,其作用是计算中央像素与周围临近像素的亮度差值,如果亮度差值差距过大,本身图像的中央亮度较少,那么经过卷积核以后,中央像素的亮度会增加。即如果一个像素比他周围的像素更加突出,那么提升其本身的亮度

 

import numpy as  np

import cv2

 

from scipy import ndimage

 

kernel33=np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])

kernel33_D=np.array([[1,1,1],[1,-8,1],[1,1,1]])

img=cv2.imread("C:/Users/Mr.Ma/Desktop/1.jpg",0)

lightImg=ndimage.convolve(img,kernel33_D)

cv2.imshow("test",lightImg)

cv2.waitKey(0)

 

 

ndimage库是一个处理多维图像的函数库,其中包括图像滤波器,傅里叶变换、图像的旋转拉伸以及测量和形态学处理等。注意这里卷积核降低的程度较大,最后完全造成了失真,使得图片失去了能够表现其形式的特征图谱。

3、卷积核进阶

OpenCV 中也提供了常用的卷积核函数——fileter2D 这是通过程序设计人员指定的任意核或者卷积矩阵与目标矩阵进行计算

fileter2D 的具体使用如下:

cv2.fileter2D (src,-1,kernel,dst)

其中src是目标图片,-1指的是每个目标图片的通道位深数,一般要求目标图片和生成图片的位深数一样。kernel是图片所使用的卷积核矩阵。

 

卷积核中所有的权重相加的和为0.这样做的目的是在卷积核完成后,最终会得到一个边缘突出的图像卷积结果,边缘被转化为白色,而非边缘区域被转化为黑色

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/mafang9601/article/details/86476196