Update to 2.0.0 tree from current Fremantle build
[opencv] / interfaces / matlab / toolbox / opencv / cvdemos / filldemo.m
diff --git a/interfaces/matlab/toolbox/opencv/cvdemos/filldemo.m b/interfaces/matlab/toolbox/opencv/cvdemos/filldemo.m
deleted file mode 100644 (file)
index 246beef..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-function filldemo(action,varargin);\r
-%   OpenCV cvFloodFill function demo\r
-\r
-global demoName;\r
-demoName = 'OpenCV FloodFill demo';\r
-if nargin<1,\r
-   action='InitializeDEMO';\r
-end;\r
-\r
-feval(action,varargin{:});\r
-return;\r
-\r
-\r
-%%%\r
-%%%  Sub-function - InitializeDEMO\r
-%%%\r
-\r
-function InitializeDEMO()\r
-\r
-global demoName;\r
-\r
-% If demo is already running, bring it to the foreground.\r
-h = findobj(allchild(0), 'tag', demoName);\r
-if ~isempty(h)\r
-   figure(h(1))\r
-   return\r
-end\r
-\r
-screenD = get(0, 'ScreenDepth');\r
-if screenD>8\r
-   grayres=256;\r
-else\r
-   grayres=128;\r
-end\r
\r
-DemoFig=figure( ...\r
-   'Name',demoName, ...\r
-   'NumberTitle','off', 'HandleVisibility', 'on', ...\r
-   'tag', demoName, ...\r
-   'Visible','off', 'Resize', 'off',...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'IntegerHandle', 'off', ...\r
-   'Doublebuffer', 'on', ...\r
-   'Colormap', gray(grayres));\r
-\r
-%====================================\r
-% Information for all buttons (and menus)\r
-btnWid=0.175;\r
-btnHt=0.06;\r
-\r
-%====================================\r
-% The CONSOLE frame\r
-frmBorder=0.02;\r
-frmBottom = 0.13;\r
-\r
-%frmLeft = 0.5-btnWid-1.5*frmBorder;\r
-frmLeft = 0.52 + frmBorder;\r
-frmWidth = 2*btnWid+3*frmBorder;\r
-frmHeight = btnHt+2*frmBorder;\r
-frmPos=[frmLeft frmBottom frmWidth frmHeight];\r
-h=uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','frame', ...\r
-   'Units','normalized', ...\r
-   'Position',frmPos, ...\r
-   'BackgroundColor',[0.45 0.45 0.45]);\r
-\r
-%====================================\r
-% The Apply button\r
-labelStr='Apply';\r
-callbackStr='filldemo(''Apply'')';\r
-yPos=frmBottom+frmBorder;\r
-applyHndl=uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','pushbutton', ...\r
-   'Units','normalized', ...\r
-   'Position',[frmLeft+frmBorder yPos btnWid btnHt], ...\r
-   'String',labelStr, ...\r
-   'Enable', 'off', ...\r
-   'Callback',callbackStr);\r
-\r
-\r
-%====================================\r
-% The CLOSE button\r
-labelStr='Close';\r
-callbackStr='close(gcf)';\r
-\r
-closeHndl=uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','pushbutton', ...\r
-   'Units','normalized', ...\r
-   'Position',[frmLeft+btnWid+2*frmBorder yPos btnWid btnHt], ...\r
-   'Enable', 'off', ...\r
-   'String',labelStr, ...\r
-   'Callback',callbackStr);\r
-\r
-c = get(DemoFig,'Color');\r
-if [.298936021 .58704307445 .114020904255]*c'<.5,\r
-   fgColor = [1 1 1];\r
-else\r
-   fgColor = [0 0 0];\r
-end\r
-\r
-%==================================\r
-% Set up the image axes\r
-figpos = get(DemoFig, 'position');\r
-row = figpos(4); col = figpos(3);  % dimensions of figure window\r
-\r
-vertSpac = (row-330)/3;\r
-horSpac = (col-2*256)/3;\r
-hSrcAx = axes('Parent', DemoFig, ...\r
-   'units', 'pixels', ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'ydir', 'reverse', ...\r
-   'XLim', [.5 255.5], ...\r
-   'YLim', [.5 255.5],...\r
-   'CLim', [0 255], ...\r
-   'XTick',[],'YTick',[], ...\r
-   'Position', [horSpac row-vertSpac-256 256 256]);\r
-title('Source Image');\r
-\r
-hDstAx = axes('Parent', DemoFig, ...\r
-   'units', 'pixels', ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'ydir', 'reverse', ...\r
-   'XLim', [.5 255.5], ...\r
-   'YLim', [.5 255.5],...\r
-   'CLim', [0 255], ...\r
-   'XTick',[],'YTick',[], ...\r
-   'Position', [2 * horSpac + 256 row-vertSpac-256 256 256]);\r
-title('Destination Image');\r
-\r
-%==================================\r
-% Set up the images\r
-blank = repmat(uint8(0),256,256);\r
-hSrcImage = image('Parent', hSrcAx,...\r
-   'CData', blank, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'CDataMapping', 'scaled', ...\r
-   'Xdata', [1 256],...\r
-   'Ydata', [1 256],...\r
-   'ButtonDownFcn', 'filldemo(''SeedPointUpdate'')', ...\r
-   'EraseMode', 'none');\r
-\r
-hDstImage = image('Parent', hDstAx,...\r
-   'CData', blank, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'CDataMapping', 'scaled', ...\r
-   'Xdata', [1 256],...\r
-   'Ydata', [1 256],...\r
-   'EraseMode', 'none');\r
-\r
-%==================================\r
-% SeedPoint\r
-seedPoint = [128, 100];\r
-hSeedPoint = [line('Parent', hSrcAx, ...\r
-   'XData', [], ...\r
-   'YData', [], ...\r
-   'UserData', seedPoint), ...\r
-line('Parent', hSrcAx, ...\r
-   'XData', [], ...\r
-   'YData', [])];\r
-%   'EraseMode', 'xor', ...\r
-\r
-% Status bar\r
-% rangePos = [64 3 280 15];\r
-rangePos = [0 .01 1 .05];\r
-hStatus = uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','text', ...\r
-   'Units','normalized', ...\r
-   'Position',rangePos, ...\r
-   'Horiz','center', ...\r
-   'Background',c, ...\r
-   'Foreground',[.8 0 0], ...\r
-   'Tag', 'Status', ...\r
-   'String','Status bar');\r
-\r
-\r
-ctrHt = 19; % controls' height\r
-srcImgPos = get(hSrcAx, 'Position');\r
-%====================================\r
-% The New Value Edit\r
-pos = [srcImgPos(1) + srcImgPos(3) / 2 ...\r
-       srcImgPos(2) - 2 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-hNewValEdit=uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','edit', ...\r
-   'Background','white', ...\r
-   'Foreground','black', ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'String','255', ...\r
-   'Horiz', 'right',...\r
-   'Tag','AppEdit', ...\r
-   'UserData', [255], ...\r
-   'Callback','filldemo(''ControlsUpdate'')');\r
-%====================================\r
-% The New Value Edit Label\r
-pos = [srcImgPos(1) ...\r
-       srcImgPos(2) - 2 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-h = uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','text', ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'Horiz','left', ...\r
-   'Background',c, ...\r
-   'Foreground','black', ...\r
-   'String','New Value:');\r
-\r
-%====================================\r
-% The loDiff Edit\r
-pos = [srcImgPos(1) + srcImgPos(3) / 2 ...\r
-       srcImgPos(2) - 3 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-hLoDiffEdit=uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','edit', ...\r
-   'Background','white', ...\r
-   'Foreground','black', ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'String','1', ...\r
-   'Horiz', 'right',...\r
-   'Tag','AppEdit', ...\r
-   'UserData', [1], ...\r
-   'Callback','filldemo(''ControlsUpdate'')');\r
-%====================================\r
-% The loDiff Edit Label\r
-pos = [srcImgPos(1) ...\r
-       srcImgPos(2) - 3 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-h = uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','text', ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'Horiz','left', ...\r
-   'Background',c, ...\r
-   'Foreground','black', ...\r
-   'String','Lower Diff:');\r
-\r
-%====================================\r
-% The upDiff Edit\r
-pos = [srcImgPos(1) + srcImgPos(3) / 2 ...\r
-       srcImgPos(2) - 4 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-hUpDiffEdit=uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','edit', ...\r
-   'Background','white', ...\r
-   'Foreground','black', ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'String','1', ...\r
-   'Horiz', 'right',...\r
-   'Tag','AppEdit', ...\r
-   'UserData', [1], ...\r
-   'Callback','filldemo(''ControlsUpdate'')');\r
-%====================================\r
-% The upDiff Edit Label\r
-pos = [srcImgPos(1) ...\r
-       srcImgPos(2) - 4 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-h = uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','text', ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'Horiz','left', ...\r
-   'Background',c, ...\r
-   'Foreground','black', ...\r
-   'String','Upper Diff:');\r
-\r
-%====================================\r
-% The Connectivity Popup\r
-pos = [srcImgPos(1) + srcImgPos(3) / 2 ...\r
-       srcImgPos(2) - 5 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-hConPop=uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','popupmenu', ...\r
-   'BackgroundColor',[.8 .8 .8], ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'String','4|8', ...\r
-   'Tag','ThreshPop', ...\r
-   'Callback','filldemo(''ControlsUpdate'')');\r
-%====================================\r
-% The Connectivity Label\r
-pos = [srcImgPos(1) ...\r
-       srcImgPos(2) - 5 * ctrHt srcImgPos(3) / 2 ctrHt];\r
-h = uicontrol( ...\r
-   'Parent', DemoFig, ...\r
-   'BusyAction','Queue','Interruptible','off',...\r
-   'Style','text', ...\r
-   'Units','pixels', ...\r
-   'Position',pos, ...\r
-   'Horiz','left', ...\r
-   'Background',c, ...\r
-   'Foreground','black', ...\r
-   'String','Connectivity:');\r
-\r
-setstatus(DemoFig, 'Initializing Demo...');\r
-set(DemoFig, 'Pointer', 'watch');\r
-drawnow;\r
-set(DemoFig, 'Visible','on');\r
-\r
-% Put handles to graphics objects and controls in the figure's userdata\r
-handles.SrcImage = hSrcImage;\r
-handles.DstImage = hDstImage;\r
-\r
-handles.SrcAx = hSrcAx;\r
-\r
-handles.SeedPoint = hSeedPoint;\r
-handles.NewValEdit = hNewValEdit;\r
-handles.LoDiffEdit = hLoDiffEdit;\r
-handles.UpDiffEdit = hUpDiffEdit;\r
-handles.ConPop     = hConPop;\r
-\r
-set(DemoFig, 'UserData', handles);\r
-\r
-LoadNewImage(DemoFig);\r
-\r
-set(DemoFig, 'HandleVisibility','Callback')\r
-set([closeHndl applyHndl], 'Enable', 'on');\r
-return\r
-\r
-\r
-%%%\r
-%%%  Sub-Function - LoadNewImage\r
-%%%\r
-\r
-function LoadNewImage(DemoFig)\r
-\r
-if nargin<1\r
-   DemoFig = gcbf;\r
-end\r
-\r
-set(DemoFig,'Pointer','watch');\r
-\r
-handles = get(DemoFig,'UserData');\r
-\r
-hSrcImage = handles.SrcImage;\r
-hSrcAx    = handles.SrcAx;\r
-\r
-alumgrns2 = [];\r
-load cvdemos alumgrns2;\r
-\r
-img = alumgrns2;\r
-\r
-set(hSrcImage, 'Cdata', img);\r
-\r
-blank = repmat(uint8(0),256,256);\r
-set(handles.DstImage, 'Cdata', blank);\r
-\r
-drawnow;\r
-\r
-ControlsUpdate(DemoFig);\r
-Apply(DemoFig);\r
-return;\r
-\r
-\r
-%%%\r
-%%%  Sub-Function - Apply\r
-%%%\r
-\r
-function Apply(DemoFig)\r
-\r
-if nargin<1\r
-   DemoFig = gcbf;\r
-end\r
-\r
-handles = get(DemoFig,'UserData');\r
-\r
-hSrcImage=handles.SrcImage;\r
-hDstImage=handles.DstImage;\r
-\r
-hSeedPoint  = handles.SeedPoint;\r
-hNewValEdit = handles.NewValEdit;\r
-hLoDiffEdit = handles.LoDiffEdit;\r
-hUpDiffEdit = handles.UpDiffEdit;\r
-hConPop     = handles.ConPop;\r
-\r
-set(DemoFig,'Pointer','watch');\r
-setstatus(DemoFig, 'FloodFilling image...'); drawnow;\r
-\r
-img = get(hSrcImage, 'CData');\r
-\r
-seedPoint = get(hSeedPoint(1), 'UserData');\r
-newVal = get(hNewValEdit, 'UserData');\r
-loDiff = get(hLoDiffEdit, 'UserData');\r
-upDiff = get(hUpDiffEdit, 'UserData');\r
-\r
-% connectivity value\r
-v = get(hConPop,{'Value','String'});\r
-connectivity = str2num(deblank(v{2}(v{1},:)));\r
-\r
-% Flood Fill the image\r
-% [dst area value rect] = cvFloodFill(img, ...\r
-%     [seedPoint(2)-1 seedPoint(1)-1], newVal, ...\r
-%     loDiff, upDiff, connectivity);\r
-[dst area value rect] = cvFloodFill(img, ...\r
-    seedPoint, newVal, ...\r
-    loDiff, upDiff, connectivity);\r
-\r
-set(hDstImage, 'CData', dst);\r
-\r
-setstatus(DemoFig, 'Done');\r
-set(DemoFig,'Pointer','arrow'); drawnow\r
-return\r
-\r
-\r
-%%%\r
-%%%  Sub-function - ControlsUpdate\r
-%%%\r
-\r
-function ControlsUpdate(DemoFig)\r
-\r
-if nargin<1\r
-   DemoFig = gcbf;\r
-end;\r
-\r
-handles = get(DemoFig,'UserData');\r
-\r
-hSrcImage   = handles.SrcImage;\r
-\r
-hSeedPoint  = handles.SeedPoint;\r
-hNewValEdit = handles.NewValEdit;\r
-hLoDiffEdit = handles.LoDiffEdit;\r
-hUpDiffEdit = handles.UpDiffEdit;\r
-\r
-% draw seed point\r
-pointSize = 10;\r
-\r
-seedPoint = get(hSeedPoint(1), 'UserData');\r
-srcImage = get(hSrcImage, 'CData');\r
-if(srcImage(seedPoint(1),seedPoint(2)) > 128)\r
-    color = 'black';\r
-else\r
-    color = 'white';\r
-end\r
-\r
-set(hSeedPoint(1), ...\r
-   'XData', [seedPoint(1)-pointSize, seedPoint(1)+pointSize], ...\r
-   'YData', [seedPoint(2), seedPoint(2)], ...\r
-   'Color', color);\r
-set(hSeedPoint(2), ...\r
-   'XData', [seedPoint(1), seedPoint(1)], ...\r
-   'YData', [seedPoint(2)-pointSize, seedPoint(2)+pointSize], ...\r
-   'Color', color);\r
-\r
-% newVal value\r
-oldv = get(hNewValEdit, 'UserData');\r
-newv = str2num(get(hNewValEdit, 'String'));\r
-if isempty(newv) | newv(1) < 0 | newv(1) > 255\r
-    newv = oldv;\r
-end\r
-set(hNewValEdit, 'String', num2str(newv(1)));\r
-set(hNewValEdit, 'UserData', newv(1));\r
-\r
-% loDiff value\r
-oldv = get(hLoDiffEdit, 'UserData');\r
-newv = str2num(get(hLoDiffEdit, 'String'));\r
-if isempty(newv) | newv(1) < 0 | newv(1) > 255\r
-    newv = oldv;\r
-end\r
-set(hLoDiffEdit, 'String', num2str(newv(1)));\r
-set(hLoDiffEdit, 'UserData', newv(1));\r
-\r
-% upDiff value\r
-oldv = get(hUpDiffEdit, 'UserData');\r
-newv = str2num(get(hUpDiffEdit, 'String'));\r
-if isempty(newv) | newv(1) < 0 | newv(1) > 255\r
-    newv = oldv;\r
-end\r
-set(hUpDiffEdit, 'String', num2str(newv(1)));\r
-set(hUpDiffEdit, 'UserData', newv(1));\r
-\r
-setstatus(DemoFig, 'Press ''Apply'' button');\r
-return;\r
-\r
-%%%\r
-%%%  Sub-function - SeedPointUpdate\r
-%%%\r
-\r
-function SeedPointUpdate(DemoFig)\r
-if nargin<1\r
-   DemoFig = gcbf;\r
-end;\r
-\r
-handles = get(DemoFig,'UserData');\r
-\r
-hSeedPoint = handles.SeedPoint;\r
-hSrcAx     = handles.SrcAx;\r
-hSrcImage  = handles.SrcImage;\r
-\r
-srcImage = get(hSrcImage, 'CData');\r
-imgSize  = size(srcImage);\r
-imgSize  = [imgSize(2) imgSize(1)];\r
-seedPoint = get(hSrcAx, 'CurrentPoint');\r
-seedPoint = max([seedPoint(1, 1) seedPoint(1, 2);1 1]);\r
-seedPoint = floor(min([seedPoint;imgSize]));\r
-\r
-set(hSeedPoint(1), 'UserData', seedPoint);\r
-\r
-ControlsUpdate(DemoFig);\r
-\r
-return;\r