ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

LabVIEW MathScript RT Module

cancel
Showing results for 
Search instead for 
Did you mean: 

How to process Mathlab image code with LabVIEW

Hello,

 

I tried to convert this MATLAB imaging code with LabVIEW. I found error and I guess my labVIEW program is incomplete.

 

Can you check and extend your hand for help please!!!!!!!!!!!!!! Here is the full code and my incomplete program is also attached.

 

 

% now generate the image, MatLab code.

 

pixelspermm = 37;

imagedepth=14;

 

hei=round(pixelspermm*imagedepth);

wid=numAlines;

img=zeros(hei,wid);

for i=1:numAlines

%     img(:,i)=resample(abs (compimg(i,1:imglen)).',wid,imglen);

    img(:,i)=abs (compimg(i,1:hei)).';

end

tmp=sprintf('OCT image of depth % d mm',imagedepth);

figure; imshow(img,[]); title(tmp);

 

cd(curdir);

0 Kudos
Message 1 of 5
(8,245 Views)

What error code and message does MathScript return?

0 Kudos
Message 2 of 5
(8,243 Views)

Hello ssujann1,

 

This is Andrew Brown, an Applications Engineer from National Instruments. A quick look over your MATLAB code compared to your LabVIEW code shows some significant differences. Functions you may need to use include the IMAQ Resample VI, Array Subset VI, and a For loop

 

Regards,

 

Andrew Brown

Software Engineer
National Instruments
0 Kudos
Message 3 of 5
(8,225 Views)

Hi Every1,

 

Here is Matlab code, i want implement it in mathscript node but its giving the problems, please help me......

 

 

 

clear all;
close all;
clc;

Imc=imread('C:\Users\electrono\Desktop\brain Tumer Project\Bijapur Project\11jun2012\Tumoured images\2.jpg');
imc=double(Imc(:,:,1));
figure(1),
imagesc(imc);colormap(gray);


[m,n]=size(imc)


c0=1;
initialLSF = c0*ones(size(imc));
% generate the initial region R0 as two rectangles
initialLSF(25:35,40:50)=-c0;
%initialLSF(25:35,40:50)=-c0;
phi_1=initialLSF;
phi=phi_1

phiq=phi;
s=find(phiq==-1)
phiq(s)=0;
A=im2bw(phiq);
%phiq=phi;
im1=double(imc);
bt=1000;
a1=0.01;
L=3;
B=im2bw(ones(L,L));


% timestep=1; % time step
% mu=0.2/timestep; % coefficient of the distance regularization term R(phi)
% iter_inner=5;
% iter_outer=200;
% lambda=5; % coefficient of the weighted length term L(phi)
% alfa=-3; % coefficient of the weighted area term A(phi)
% epsilon=1.5; % papramater that specifies the width of the DiracDelta function
%
% sigma=.8; % scale parameter in Gaussian kernel
% G=fspecial('gaussian',15,sigma); % Caussian kernel
% Img_smooth=conv2(imc,G,'same'); % smooth image by Gaussiin convolution
% [Ix,Iy]=gradient(Img_smooth);
% f=Ix.^2+Iy.^2;
% g=1./(1+f); % edge indicator function.


figure(2);
hold off;
imagesc(imc);
colormap(gray);
hold on;
contour(phi,[0,0],'y');pause,


phi1=(phi+1)/2;
phi2=(1-phi)/2;
AB1=imdilate(A,B);
AB2=imerode(A,B);
% E=AB1-AB2;
% hold on;
% contour(E,[0,0],'r');


n1=sum(phi1(:));
n2=sum(phi2(:));
im1p=im1.*phi1;
im1m=im1.*phi2;
c1=sum(sum(im1p))/n1;
c2=sum(sum(im1m))/n2;

u=c1*phi1 + c2*phi2;

 


Du=1;

for i=1:50,
i
uold=u;

[phi_x,phi_y]=gradient(phi);
s=sqrt(phi_x.^2 + phi_y.^2);
smallNumber=1e-10;
Nx=phi_x./(s+smallNumber); % add a small positive number to avoid division by zero
Ny=phi_y./(s+smallNumber);
% curvature=div(Nx,Ny);

[nxx,junk]=gradient(Nx);
[junk,nyy]=gradient(Ny);
curvature=nxx+nyy;

delphi=bt*curvature-(u-im1).*Du;
phi=phi+a1*delphi;


phi1=(phi+1)/2;
phi2=(1-phi)/2;
AB1=imdilate(A,B);
AB2=imerode(A,B);
E=AB1-AB2;
% hold on;
% contour(E,[0,0],'r');


n1=sum(phi1(:));
n2=sum(phi2(:));
im1p=im1.*phi1;
im1m=im1.*phi2;
c1=sum(sum(im1p))/n1;
c2=sum(sum(im1m))/n2;

unew=c1*phi1 + c2*phi2;
Du=unew-uold;

 

 

s1=find(phi>0);
s2=find(phi<0);
phi(s2)=1;
phi(s1)=-1;
V=(1+phi)/2;
D=im2bw(E) & im2bw(V);
A=AB2|D;
phi=2*A-1;
figure(2)

if mod(i,2)==0,hold on;
contour(phi,[0,0],'r');
pause,end;


end;


hold on;
contour(phi,[0,0],'b');

 

 

 

 

 

 

Thanks in advance..

 

0 Kudos
Message 4 of 5
(8,013 Views)

Hi,

 

What error did you get?

 

I opened your attached VI and run the MathScript Node code with some trivial data. The error I got was from contour function. The contour function in MathScript can not accept line attribute as input. Therefore, you need to change line 9 from

contour(phi,[0,0],'y');pause,

to

contour(phi,[0,0]);pause,

Besides contour, I did not see any other errors.

 

0 Kudos
Message 5 of 5
(8,007 Views)