Line 82: | Line 82: | ||
<div class="collapse navbar-collapse " id="navbarNav2"> | <div class="collapse navbar-collapse " id="navbarNav2"> | ||
<ul class="navbar-nav mr-auto"> | <ul class="navbar-nav mr-auto"> | ||
− | <li class="nav-item"><a href="https://2017.igem.org/Team:SJTU-BioX-Shanghai/ | + | <li class="nav-item"><a href="https://2017.igem.org/Team:SJTU-BioX-Shanghai/Model-cn" class="nav-link">概述</a></li> |
<li class="nav-item"><a href="https://2017.igem.org/Team:SJTU-BioX-Shanghai/Signal_Pathway-cn" class="nav-link">信号通路</a></li> | <li class="nav-item"><a href="https://2017.igem.org/Team:SJTU-BioX-Shanghai/Signal_Pathway-cn" class="nav-link">信号通路</a></li> | ||
<li class="nav-item active"><a href="https://2017.igem.org/Team:SJTU-BioX-Shanghai/Color_Chart-cn" class="nav-link">色彩图表</a></li> | <li class="nav-item active"><a href="https://2017.igem.org/Team:SJTU-BioX-Shanghai/Color_Chart-cn" class="nav-link">色彩图表</a></li> |
Revision as of 11:01, 10 December 2017
We developed a tool which could create a inducer-color matching chart. This color chart could be either stored in our mobile APP or printed as a convenient inducer-color matching tool, by which we could easily quantify two kinds of inducers at the same time. This tool was developed in MATLAB by utilizing image processing methods.
1.Read an image.
2.Find standard area center.
3.Calculate standard area RGB sperately.
4.Make a gradient color figure by linear interpolation.
function f = igem
%initialize
close all
clc
RGB = imread( 'test.jpg' );
ion1='As'; ion2='IPTG';
ion1concentration=[0,0.2,0.4]; ion2concentration=...
[0,0.1,0.2];
ion1num=size(ion1concentration,2);
ion2num=size(ion2concentration,2);
fprintf('%s have %.0f ranks,%s have %.0f\n ranks',ion1,ion1num,ion2,ion2num)
%% mark standard area, calculate RGB and output ion1num*ion2num matrix
R = RGB( :, :, 1 );
G = RGB( :, :, 2 );
B = RGB( :, :, 3 );
StandardArea = [200,200,100;500,200,100;800,200,100;...
200,500,100;500,500,100;800,500,100;...
200,800,100;500,800,100;800,800,100];
% marker = insertShape(RGB,'circle',StandardArea,'LineWidth',5 ,...
% 'Color', 'red','Opacity',0.7) %mark
[m,n]=size(StandardArea);
StandardRadius=StandardArea(1,3);
StandardCenter=StandardArea(:,1:2);
for i=1:m %For every area
k=0;AllR=0;AllG=0;AllB=0;
for x=(StandardCenter(i,1)-StandardRadius):(StandardCenter(i,1)+StandardRadius)
for y=(StandardCenter(i,2)-StandardRadius):(StandardCenter(i,2)+StandardRadius)
if sqrt((x-StandardCenter(i,1))^2+(y-StandardCenter(i,2))^2)
AllR = AllR + R(x,y);
AllG = AllG + G(x,y);
AllB = AllB + B(x,y);
k=k+1;
end
end
end
AverageR(i) = AllR/k;
AverageG(i) = AllG/k;
AverageB(i) = AllB/k;
end
%% Print Standard Color Chart
reshape(AverageR,ion1num,ion2num)
reshape(AverageG,ion1num,ion2num)
reshape(AverageB,ion1num,ion2num)
Im(:,:,1)=AverageR;
Im(:,:,2)=AverageG;
Im(:,:,3)=AverageB;
I=imresize(Im,[1080 1920]);
imshow(I);
end