how to find color pattern?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
ajeet verma
el 14 de Ag. de 2017
Respondida: Image Analyst
el 14 de Ag. de 2017
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 comentario
Stephen23
el 14 de Ag. de 2017
@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.
Respuesta aceptada
Image Analyst
el 14 de Ag. de 2017
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;
0 comentarios
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!