作业帮 > 综合 > 作业

用小波分解图像之后,对分解系数进行了修改,但是最后重构的图像不对?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/05 21:02:08
用小波分解图像之后,对分解系数进行了修改,但是最后重构的图像不对?
我用wavedec2对图像进行2层分解,然后对近似图像以及各高频细节图像进行了不同的滤波处理,然后用waverec2进行图像重构显示有错误,那位高手讲讲里面的玄机啊?
我将各子图像进行滤波处理之后,将系数转化为行向量,然后按照近似,水平,垂直,对角的次序合成cn,但是他和原来分解出来的c维数不同,这有关系吗?
然后执行以下命令:
X=waverec2(cn,l,'haar');
出现以下错误提示:
Index exceeds matrix dimensions.
Error in ==> detcoef2 at 60
varargout{3} = reshape(c(first:last),s(k,:));
Error in ==> appcoef2 at 56
[h,v,d] = detcoef2('all',c,s,p);
Error in ==> waverec2 at 30
x = appcoef2(c,s,varargin{:},0);
还有一点分解出来的近似图像特别亮,
其实我也尝试dwt2函数与idwt2函数,但是最后重构的图像好像是空心的,我还不能传图片到网上,要不你在帮小梅姐看看!不管怎么样,
运行后是什么样的错误?
没看到细节不好判断,但我怀疑有可能是数据类型不匹配一类.把具体的出错信息发上来看看吧.
看到了,问题应该出在矩阵维度上,wavedec2做完小波分解后会返回两个变量,一个是小波系数,另一个是相当于索引的矩阵,文档中分别以C和S表示.在使用waverec2重构的时候,输入变量也应是一样的内容.按照你的思路,应该是cn为滤波后的小波系数,那么I应该就是wavedec2的第二个返回变量,如果cn没变,则I不应该变.
滤波的时候最好不要打乱小波系数的顺序,否则重新组织起来很烦的.wavedec2生成的小波系数组织方式参见后面的参考资料.其实做图像处理还可以考虑用dwt2这个函数.
近似图像特别亮?如果排除滤波的影响,我觉得haar小波应该不会出现这个现象.
以上.
专业路过的老狼