matlab如何读入tif文件,卷积并输出?
文件为tiff格式,要求读入源文件,卷积后,输出处理后的tiff文件。
以下是我的代码,假设源文件为d:\do.tif,输出文件为d:\do2.tif,h为卷积核。
A = imread('d:\do.tif')
h=1/49*[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0;0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0;0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0;0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0;0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0;0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0;0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
j=filter2(h,A)
imshow(j)
imwrite(j,'d:\do2.tif','tif')
得到的图是一片空白,不知哪里错了?
因为源文件为彩色图,我不知道是否在处理前需要转换彩色图为灰度?如果需要,怎么转成灰度并在处理后转回彩色呢?
另外,大家有可以分解为x和y两个方面上的17*17高斯卷积核吗?迫切需要。
[解决办法]
卷积是conv2,另外看一下矩阵A的结构,是不是可以直接卷积