声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 995|回复: 1

[编程技巧] matlab怎么进行彩色调制 急

[复制链接]
发表于 2010-5-31 14:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想要把黑底上面有R(红色) G(绿色) B(蓝色)的图片的颜色分开分别与横 竖  斜(45度)的条纹光栅相乘(得到的图上面有条纹), 再分别进行傅里叶变换,再滤波把条纹滤掉,再逆傅里叶变换就能得到没有条纹的RGB三个字, 颜色还是一样的,然后把分开的三个字合成一幅图 。下面是我的程序,但是我只懂得把条纹先画出来再相乘,滤波也不对等,请高手帮帮忙啊  急  可能有一些表述不是很清楚请谅解



clc

I=imread('rgb.jpg');%读取图像;
a=im2double(I);
r(:,:,1)=a(:,:,1);
r(:,:,2)=(0);
r(:,:,3)=(0);
r1=im2double(r);
M=imread('竖条纹.png');
M1=im2double(M);
N=r1.*M1;
N1=rgb2gray(N);
figure(1),imshow(N)
g(:,:,2)=a(:,:,2);
g(:,:,1)=(0);
g(:,:,3)=(0);
g1=im2double(g);
Q=imread('横条纹.png');
Q1=im2double(Q);
q=g1.*Q1;
q1=rgb2gray(q);
figure(2),imshow(q)

b(:,:,3)=a(:,:,3);
b(:,:,1)=(0);
b(:,:,2)=(0);
b1=im2double(b);
P=imread('斜条纹.png');
P1=im2double(P);
p=b1.*P1;
p1=rgb2gray(p);
figure(3),imshow(p)
j=fft2(N);
k=fftshift(j);
R=log(abs(k));
D1=abs(k);
H1=rgb2gray(D1);
figure(4),imshow(D1*0.001)
j1=fft2(q);
k1=fftshift(j1);
G=log(abs(k1));
D2=abs(k1);
figure(5),imshow(D2*0.001)
j2=fft2(p);
k2=fftshift(j2);
B=log(abs(k2));%)分别对红、绿、蓝三原色的数据矩阵进行快速傅里叶变换;
D3=abs(k2);
figure(6),imshow(D3*0.001)
h1=fspecial('laplacian');
B1=imfilter(j,h1);
f1=ifft2(B1);%对B1进行逆傅里叶变换;
B2=imfilter(j1,h1);
f2=ifft2(B2);%对B2进行傅里叶变换;
B3=imfilter(k2,h1);
f3=ifft2(B3);%对B3进行傅里叶变换;
figure(7);
imshow(f3)

[ 本帖最后由 坏心眼的鱼 于 2010-5-31 14:20 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2010-5-31 18:49 | 显示全部楼层
没有人会吗?:'(
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 23:29 , Processed in 0.052420 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表