Image 基于卷积的图像处理

Image 基于卷积的图像处理,image,image-processing,convolution,Image,Image Processing,Convolution,嗯,我在灰度图像上尝试卷积,但当我在rgb图像上搜索卷积时,我找不到令人满意的解释。如何对rgb图像应用卷积?通过线性组合相应的矢量元素,可以计算矢量的线性组合: a * [x1, y1, z1] + b * [x2, y2, z2] = [a*x1+b*x2, a*y1+b*y2 , a*z1+b*z2] 由于卷积是一种线性运算(即,对邻域内的每个像素加权并将结果相加),因此可以将卷积独立应用于每个RGB通道(例如,使用MATLAB语法): img=imread(…); img(:,:,1)

嗯,我在灰度图像上尝试卷积,但当我在rgb图像上搜索卷积时,我找不到令人满意的解释。如何对rgb图像应用卷积?

通过线性组合相应的矢量元素,可以计算矢量的线性组合:

a * [x1, y1, z1] + b * [x2, y2, z2] = [a*x1+b*x2, a*y1+b*y2 , a*z1+b*z2]
由于卷积是一种线性运算(即,对邻域内的每个像素加权并将结果相加),因此可以将卷积独立应用于每个RGB通道(例如,使用MATLAB语法):

img=imread(…);
img(:,:,1)=conv2(img(:,:,1),内核);
img(:,:,2)=conv2(img(:,:,2),内核);
img(:,:,3)=conv2(img(:,:,3),内核);

向量的线性组合可以通过线性组合相应的向量元素来计算:

a * [x1, y1, z1] + b * [x2, y2, z2] = [a*x1+b*x2, a*y1+b*y2 , a*z1+b*z2]
由于卷积是一种线性运算(即,对邻域内的每个像素加权并将结果相加),因此可以将卷积独立应用于每个RGB通道(例如,使用MATLAB语法):

img=imread(…);
img(:,:,1)=conv2(img(:,:,1),内核);
img(:,:,2)=conv2(img(:,:,2),内核);
img(:,:,3)=conv2(img(:,:,3),内核);

您可以用两种不同的方式来看待这一点:首先,您可以将彩色图像转换为具有法向量的强度图像。最适用的是(.299、.587、.114),这是自然灰度转换。要获得强度,需要转换I=.299*R+.587*G+.114*B


如果您正在设计自己的卷积网络,并打算保留颜色通道作为输入,只需将彩色图像视为具有3个通道的4D张量即可。例如,如果您有一个(h x w)图像,则张量大小为(1 x h x w x 3),您可以使用大小为(kh x kw x 3 x f)的过滤器,其中kh和kw是您的过滤器大小,f是所需的输出特征

您可以用两种不同的方式来看待这一点:首先,您可以将彩色图像转换为具有法向量的强度图像。最适用的是(.299、.587、.114),这是自然灰度转换。要获得强度,需要转换I=.299*R+.587*G+.114*B


如果您正在设计自己的卷积网络,并打算保留颜色通道作为输入,只需将彩色图像视为具有3个通道的4D张量即可。例如,如果您有一个(h x w)图像,则张量大小为(1 x h x w x 3),您可以使用大小为(kh x kw x 3 x f)的过滤器,其中kh和kw是您的过滤器大小,f是所需的输出特征

一个频道一个频道。