Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-02-01, 20:07   #1
barryyan2007
初级会员
 
注册日期: 2009-02-01
年龄: 39
帖子: 5
声望力: 0
barryyan2007 正向着好的方向发展
问题 [求助]运用MATLAB进行小波的图像处理时遇到问题,还望高手指教

在用小波对图像进行消噪处理时遇到问题,原图像可以显示,但是噪声却加不上去。程序如下
load whale
subplot(2,2,1);
image(X);
colormap(map);
title('a');
init=2055615866;
rand('seed',init);
XX=X+12*randn(size(X));
subplot(2,2,2);
image(XX);
colormap(map);
title('b');

但是出现错误,说
??? Error using ==> plus
Integers can only be combined with integers of the same class, or scalar doubles.

Error in ==> xiaozao3 at 8
XX=X+12*randn(size(X));
貌似说整数的类型不一样,还望指教。
barryyan2007 当前离线   回复时引用此帖
旧 2009-02-02, 02:10   #2
johnny8088
初级会员
 
注册日期: 2009-01-31
年龄: 45
帖子: 12
声望力: 17
johnny8088 正向着好的方向发展
默认 回复: [求助]运用MATLAB进行小波的图像处理时遇到问题,还望高手指教

引用:
作者: barryyan2007 查看帖子
在用小波对图像进行消噪处理时遇到问题,原图像可以显示,但是噪声却加不上去。程序如下
load whale
subplot(2,2,1);
image(X);
colormap(map);
title('a');
init=2055615866;
rand('seed',init)...

你需要说明whale里面的X是什么类型了。

12*randn(size(X))是一个double类型

建议你把
XX=X+12*randn(size(X))中的X 和12*randn(size(X))都转换成同一个类型的,例如unit8

下面的程序是没有问题的
X=[1,2;2,3];
subplot(2,2,1);
image(X);
%colormap(map);
title('a');
init=2055615866;
rand('seed',init);
XX=im2uint8(X)+12*uint8(randn(size(X)));
subplot(2,2,2);
image(XX);
%colormap(map);
title('b');


做图像处理,下面几个转换函数很有用
im2uint8
im2uint16
mat2gray
im2double
im2bw
上传的图像
文件类型: jpg untitled.jpg (9.9 KB, 12 次查看)
johnny8088 当前离线   回复时引用此帖
旧 2009-02-04, 11:30   #3
barryyan2007
初级会员
 
注册日期: 2009-02-01
年龄: 39
帖子: 5
声望力: 0
barryyan2007 正向着好的方向发展
眨眼 回复: [求助]运用MATLAB进行小波的图像处理时遇到问题,还望高手指教

谢谢,加噪声已经可以了。但是还有一些问题,我用sym5小波函数进行2层分解,后面两个图像貌似和加噪图像一样,并没有优化,程序如下:
%装载原始图像信号
load whale
whos;
subplot(2,2,1);
image(X);
colormap(map);
title('原始图像');

%生成含噪图像
init=2055615866;
rand('seed',init);
XX=im2uint8(X)+12*uint8(randn(size(X)));
subplot(2,2,2);
image(XX);
colormap(map);
title('含噪图像');

%下面对图像消噪
%首先用sym5小波函数对图像进行2层分解
[c,l]=(wavedec2(XX,2,'sym5'));
%图像第1层的重构逼近信号
a1=wrcoef2('a',c,l,'sym5',1);
%图像第2层的重构逼近信号
a2=wrcoef2('a',c,l,'sym5',2);

%将a1转为uint8类型
a1=im2uint8(XX);
subplot(2,2,3);
image(a1);
colormap(map);
title('第1层重构图像');
%将a2转为uint8类型
a2=im2uint8(XX);
subplot(2,2,4);
image(a2);
colormap(map);
title('第2层重构图像');

原始图像,加噪图像,第1层重构图像和第2层重构图像都能显示出来,但是后两个和加噪图像一模一样,并没有消噪的迹象,还望指教。
a1=im2uint8(XX);在这里我将a1和a2转了类型,于是X,XX,a1,a2都是uint8型,但是显示c,init,l,map仍然是double型,难道都要变成uint8型?
barryyan2007 当前离线   回复时引用此帖
旧 2009-02-15, 19:23   #4
barryyan2007
初级会员
 
注册日期: 2009-02-01
年龄: 39
帖子: 5
声望力: 0
barryyan2007 正向着好的方向发展
默认 回复: [求助]运用MATLAB进行小波的图像处理时遇到问题,还望高手指教

谢谢,加噪声已经可以了。但是还有一些问题,我用sym5小波函数进行2层分解,后面两个图像貌似和加噪图像一样,并没有优化,程序如下:
%装载原始图像信号
load whale
whos;
subplot(2,2,1);
image(X);
colormap(map);
title('原始图像');

%生成含噪图像
init=2055615866;
rand('seed',init);
XX=im2uint8(X)+12*uint8(randn(size(X)));
subplot(2,2,2);
image(XX);
colormap(map);
title('含噪图像');

%下面对图像消噪
%首先用sym5小波函数对图像进行2层分解
[c,l]=(wavedec2(XX,2,'sym5'));
%图像第1层的重构逼近信号
a1=wrcoef2('a',c,l,'sym5',1);
%图像第2层的重构逼近信号
a2=wrcoef2('a',c,l,'sym5',2);

%将a1转为uint8类型
a1=im2uint8(XX);
subplot(2,2,3);
image(a1);
colormap(map);
title('第1层重构图像');
%将a2转为uint8类型
a2=im2uint8(XX);
subplot(2,2,4);
image(a2);
colormap(map);
title('第2层重构图像');

原始图像,加噪图像,第1层重构图像和第2层重构图像都能显示出来,但是后两个和加噪图像一模一样,并没有消噪的迹象,还望指教。
a1=im2uint8(XX);在这里我将a1和a2转了类型,于是X,XX,a1,a2都是uint8型,但是显示c,init,l,map仍然是double型,难道都要变成uint8型?
barryyan2007 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
使用谱减法的语音增强matlab源程序 0503091020 MATLAB论坛 5 2014-04-09 15:51
ORIGIN去卷积 blanc Origin论坛 0 2009-03-19 20:42
GM(1,1) lvlianggan MATLAB论坛 2 2008-11-07 22:52
[讨论]各位高手有谁试过C#成功调用matlab的神经网络工具箱吗? beardgh MATLAB论坛 0 2008-10-31 16:12
[求助]帮忙看看这个该怎么仿真 sandy920324 MATLAB论坛 2 2008-09-18 19:50


所有时间均为北京时间。现在的时间是 16:00


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.