how to find color pattern?

i am coding trapezoidal fringe pattern and i need color pattern but something being wrong, please help my code is here:
%%trapezoidal color fringes (vertical)
clc;
clear all;
f1=10; % No. of vertical fringes
f2=0; % No. of horizontal fringes
m=1000;
n=1000;
a1 = zeros(m,n) ;
a2 = zeros(m,n) ;
a3 = zeros(m,n) ;
% trapezoidal fringe
imx=8;
imn=2;
T = 20;
s1= @(x) (imx+imn).*((0<=x & x<=T/6)|(x>=5*T/6 & x<=T))...
+(imx+imn*(2-6*x/T)).*(T/6<=x & x<=T/3)...
+(imx).*(T/3<=x & x<=2*T/3)...
+(imx+imn*(6*x/T-4)).*(2*T/3<=x & x<=5*T/6);
s2= @(x) (imx+imn*(6*x/T)).*(0<=x & x<=T/6)...
+(imx+imn).*(T/6<=x & x<=T/2)...
+(imx+imn*(4-6*x/T)).*(T/2<=x & x<=2*T/3)...
+(imx).*(2*T/3<=x & x<=T);
s3= @(x) (imx).*(0<=x & x<=T/3)...
+(imx+imn*(6*x/T-2)).*(T/3<=x & x<=T/2)...
+(imx+imn).*(T/2<=x & x<=5*T/6)...
+(imx+imn*(6-6*x/T)).*(5*T/6<=x & x<=T);
x = linspace(0,20,50);
X = repmat(x, 1000, 20);
I1 = s1(X);
I2 = s2(X);
I3 = s3(X);
% figure(1)
% subplot(131),imshow(I1,[])
% subplot(132),imshow(I2,[])
% subplot(133),imshow(I3,[])
a1=exp(1i*I1);
a2=exp(1i*I2);
a3=exp(1i*I3);
subplot(131),imshow(a1,[]),impixelinfo;
subplot(132),imshow(a2,[]),impixelinfo;
subplot(133),imshow(a3,[]),impixelinfo;
Color=zeros(m,n,3);
Color(:,:,1)=a1;
Color(:,:,2)=a2;
Color(:,:,3)=a3;
figure(2)
imshow(Color),title('vertical fringes'),impixelinfo;

1 Comment

@ajeet verma: today I formatted your code correctly for you. In future you can do it yourself: select the code text, then click the {} Code button.

Sign in to comment.

 Accepted Answer

Your values are negative so they show up as black because imshow() expects floating point color images to be the in the range 0-1 and anything below 0 is black and anything above 1 is white. Here's a workaround to scale your data using mat2gray():
realColor = mat2gray(real(Color));
imagColor = mat2gray(imag(Color));
figure(2)
imshow(realColor);
figure(3)
imshow(imagColor);
title('vertical fringes'),impixelinfo;

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!