Skip to content
Snippets Groups Projects
Commit c3bc3398 authored by Eric Wait's avatar Eric Wait
Browse files

Segmentation Call Fixes

parent 15d34cf4
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,10 @@ minVol = 175; ...@@ -7,7 +7,10 @@ minVol = 175;
% catch errorMessage % catch errorMessage
% %fprintf(errorMessage); % %fprintf(errorMessage);
% end % end
system(['start HematoSeg.exe ' CONSTANTS.rootImageFolder '* ' num2str(imageAlpha) ' ' num2str(minVol) ' ' num2str(eccentricity) ' 1.0 && exit']);
fprintf(1,'Segmentation...');
system(['start HematoSeg.exe ' CONSTANTS.rootImageFolder '* ' num2str(imageAlpha) ' ' num2str(minVol) ' ' num2str(eccentricity) ' .75 && exit']);
pause(5); pause(5);
CellHulls = struct(... CellHulls = struct(...
...@@ -47,7 +50,7 @@ for i=1:length(dir([CONSTANTS.rootImageFolder '\*.tif'])) ...@@ -47,7 +50,7 @@ for i=1:length(dir([CONSTANTS.rootImageFolder '\*.tif']))
end end
im = imread(Helper.GetFullImagePath(1)); im = imread(Helper.GetFullImagePath(1));
CONSTANTS.imageSize = size(im); Load.AddConstant('imageSize',size(im),1);
for i=1:length(CellHulls) for i=1:length(CellHulls)
[r c] = ind2sub(CONSTANTS.imageSize,CellHulls(i).indexPixels); [r c] = ind2sub(CONSTANTS.imageSize,CellHulls(i).indexPixels);
...@@ -55,5 +58,6 @@ for i=1:length(CellHulls) ...@@ -55,5 +58,6 @@ for i=1:length(CellHulls)
CellHulls(i).points = [c(ch) r(ch)]; CellHulls(i).points = [c(ch) r(ch)];
end end
fprintf(1,'Done\n');
end end
function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imageAlpha, sigDigits, numProcessors) function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imageAlpha, sigDigits, numProcessors)
global SegLevels CONSTANTS global CONSTANTS
status = 1; status = 1;
tSeg = 0; tSeg = 0;
...@@ -22,11 +22,15 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag ...@@ -22,11 +22,15 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag
fprintf('Segmenting (using %s processors)...\n',num2str(numProcessors)); fprintf('Segmenting (using %s processors)...\n',num2str(numProcessors));
if(~isempty(dir('.\segmentationData'))) if(~isempty(dir('.\segmentationData')))
system('rmdir /S /Q .\segmentationData'); errFile = '.\segmentationData\err_*.log';
fileName = '.\segmentationData\objs_*.mat';
semFile = '.\segmentationData\done_*.txt';
system(['del /Q' errFile ' ' fileName ' ' semFile]);
% system('rmdir /S /Q .\segmentationData');
end end
% Set CONSTANTS.imageSize as soon as possible % Set CONSTANTS.imageSize as soon as possible
firstImg = fullfile(rootFolder, [datasetName '_t' Helper.GetDigitString(1,sigDigits) '.TIF']); firstImg = Helper.GetFullImagePath(1);
chkIm = Helper.LoadIntensityImage(firstImg); chkIm = Helper.LoadIntensityImage(firstImg);
CONSTANTS.imageSize = size(chkIm); CONSTANTS.imageSize = size(chkIm);
...@@ -38,12 +42,17 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag ...@@ -38,12 +42,17 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag
return; return;
end end
if(isempty(dir('.\segmentationData')))
system('mkdir .\segmentationData');
end
dirName = fileparts(CONSTANTS.rootImageFolder);
for i=1:numProcessors for i=1:numProcessors
system(['start Segmentor ' num2str(i) ' ' num2str(numProcessors) ' ' ... system(['start Segmentor ' num2str(i) ' ' num2str(numProcessors) ' ' ...
num2str(numberOfImages) ' "' rootFolder '" "' datasetName '" ' ... num2str(numberOfImages) ' ' ...
num2str(imageAlpha) ' ' num2str(sigDigits) ' && exit']); num2str(imageAlpha) ' "' dirName '" ' CONSTANTS.imageNamePattern ' && exit']);
%use line below instead of the 3 lines above for non-parallel or to debug %use line below instead of the 3 lines above for non-parallel or to debug
% Segmentor(i,numProcessors,numberOfImages,rootFolder,datasetName,imageAlpha,sigDigits); % Segmentor(i,numProcessors,numberOfImages,imageAlpha,dir,CONSTANTS.imageNamePattern);
end end
bSegFileExists = false(1,numProcessors); bSegFileExists = false(1,numProcessors);
...@@ -146,12 +155,10 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag ...@@ -146,12 +155,10 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag
%% Inport into LEVer's data sturcture %% Inport into LEVer's data sturcture
[objHulls gConnect HashedHulls] = Tracker.ReadTrackData(CONSTANTS.imageSize, cellSegments, datasetName); [objHulls gConnect HashedHulls] = Tracker.ReadTrackData(CONSTANTS.imageSize, cellSegments, datasetName);
SegLevels = cellSegLevels;
fprintf('Finalizing Data...'); fprintf('Finalizing Data...');
try try
Tracker.ConvertTrackingData(objHulls,gConnect,cellFeat); Tracker.ConvertTrackingData(objHulls,gConnect);
catch excp catch excp
cltime = clock(); cltime = clock();
...@@ -164,10 +171,6 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag ...@@ -164,10 +171,6 @@ function [status tSeg tTrack] = SegAndTrackDataset(rootFolder, datasetName, imag
return; return;
end end
% Adds the special origin action, to indicate that this is initial
% segmentation data from which edit actions are built.
Editor.ReplayableEditAction(@Editor.OriginAction, 1);
fprintf('Done\n'); fprintf('Done\n');
clear cellSegments; clear cellSegments;
......
function HematoTracker() function HematoTracker()
global CONSTANTS CellHulls HashedCells CellFeatures ConnectedDist global CONSTANTS CellHulls HashedCells ConnectedDist
bKeep = (~[CellHulls.deleted]); bKeep = (~[CellHulls.deleted]);
CellHulls = CellHulls(bKeep); CellHulls = CellHulls(bKeep);
segtimes = [CellHulls.time];
[srtseg srtidx] = sort(segtimes);
[dump idxmap] = sort(srtidx);
CellHulls = CellHulls(srtidx);
if (~isempty(CellFeatures))
CellFeatures = CellFeatures(srtidx);
end
% newConnectedDist = ConnectedDist(srtidx);
% for i=1:length(newConnectedDist)
% if ( isempty(newConnectedDist{i}) )
% continue;
% end
%
% newConnectedDist{i}(:,1) = idxmap(newConnectedDist{i}(:,1))';
% end
tmax = max([CellHulls.time]); tmax = max([CellHulls.time]);
HashedCells = cell(1,tmax); HashedCells = cell(1,tmax);
for t=1:tmax for t=1:tmax
...@@ -48,13 +29,14 @@ function HematoTracker() ...@@ -48,13 +29,14 @@ function HematoTracker()
fnameIn=['.\segmentationData\SegObjs_' CONSTANTS.datasetName '.txt']; fnameIn=['.\segmentationData\SegObjs_' CONSTANTS.datasetName '.txt'];
fnameOut=['.\segmentationData\Tracked_' CONSTANTS.datasetName '.txt']; fnameOut=['.\segmentationData\Tracked_' CONSTANTS.datasetName '.txt'];
tic
fprintf(1,'Tracking...'); fprintf(1,'Tracking...');
system(['.\MTC.exe ' num2str(CONSTANTS.dMaxCenterOfMass) ' ' num2str(CONSTANTS.dMaxConnectComponentTracker) ' "' fnameIn '" "' fnameOut '" > out.txt']); system(['.\MTC.exe ' num2str(CONSTANTS.dMaxCenterOfMass) ' ' num2str(CONSTANTS.dMaxConnectComponentTracker) ' "' fnameIn '" "' fnameOut '" > out.txt']);
fprintf('Done\n'); fprintf('Done\n');
tTrack=toc;
[objTracks gConnect oldHashedHulls] = Tracker.RereadTrackData('segmentationData', CONSTANTS.datasetName); fprintf(1,'Importing Tracking Results...');
[objTracks gConnect] = Tracker.RereadTrackData('segmentationData', CONSTANTS.datasetName);
fprintf('Done\n');
fprintf('Finalizing Data...'); fprintf('Finalizing Data...');
Tracker.RebuildTrackingData(objTracks, gConnect); Tracker.RebuildTrackingData(objTracks, gConnect);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment