87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
	
	
#! /usr/bin/env octave
 | 
						|
cv;
 | 
						|
highgui;
 | 
						|
 | 
						|
global src;
 | 
						|
global image
 | 
						|
global element
 | 
						|
global element_shape
 | 
						|
global global_pos;
 | 
						|
global dest;
 | 
						|
src = 0;
 | 
						|
image = 0;
 | 
						|
dest = 0;
 | 
						|
element = 0;
 | 
						|
element_shape = CV_SHAPE_RECT;
 | 
						|
global_pos = 0;
 | 
						|
 | 
						|
function Opening(pos)
 | 
						|
  global src;
 | 
						|
  global image
 | 
						|
  global element
 | 
						|
  global element_shape
 | 
						|
  global global_pos;
 | 
						|
  global dest;
 | 
						|
  element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, [] );
 | 
						|
  cvErode(src,image,element,1);
 | 
						|
  cvDilate(image,dest,element,1);
 | 
						|
  cvShowImage("Opening&Closing window",dest);
 | 
						|
endfunction
 | 
						|
function Closing(pos)
 | 
						|
  global src;
 | 
						|
  global image
 | 
						|
  global element
 | 
						|
  global element_shape
 | 
						|
  global global_pos;
 | 
						|
  global dest;
 | 
						|
  element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, [] );
 | 
						|
  cvDilate(src,image,element,1);
 | 
						|
  cvErode(image,dest,element,1);
 | 
						|
  cvShowImage("Opening&Closing window",dest);
 | 
						|
endfunction
 | 
						|
function Erosion(pos)
 | 
						|
  global src;
 | 
						|
  global image
 | 
						|
  global element
 | 
						|
  global element_shape
 | 
						|
  global global_pos;
 | 
						|
  global dest;
 | 
						|
  element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, [] );
 | 
						|
  cvErode(src,dest,element,1);
 | 
						|
  cvShowImage("Erosion&Dilation window",dest);
 | 
						|
endfunction
 | 
						|
function Dilation(pos)
 | 
						|
  global src;
 | 
						|
  global image
 | 
						|
  global element
 | 
						|
  global element_shape
 | 
						|
  global global_pos;
 | 
						|
  global dest;
 | 
						|
  element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, [] );
 | 
						|
  cvDilate(src,dest,element,1);
 | 
						|
  cvShowImage("Erosion&Dilation window",dest);
 | 
						|
endfunction
 | 
						|
 | 
						|
filename = "../c/baboon.jpg";
 | 
						|
if (size(argv, 1)==1)
 | 
						|
  filename = argv(){1};
 | 
						|
endif
 | 
						|
src = cvLoadImage(filename,1);
 | 
						|
if (! swig_this(src))
 | 
						|
  exit(-1);
 | 
						|
endif
 | 
						|
 | 
						|
image = cvCloneImage(src);
 | 
						|
dest = cvCloneImage(src);
 | 
						|
cvNamedWindow("Opening&Closing window",1);
 | 
						|
cvNamedWindow("Erosion&Dilation window",1);
 | 
						|
cvShowImage("Opening&Closing window",src);
 | 
						|
cvShowImage("Erosion&Dilation window",src);
 | 
						|
cvCreateTrackbar("Open","Opening&Closing window",global_pos,10,@Opening);
 | 
						|
cvCreateTrackbar("Close","Opening&Closing window",global_pos,10,@Closing);
 | 
						|
cvCreateTrackbar("Dilate","Erosion&Dilation window",global_pos,10,@Dilation);
 | 
						|
cvCreateTrackbar("Erode","Erosion&Dilation window",global_pos,10,@Erosion);
 | 
						|
cvWaitKey(0);
 | 
						|
cvDestroyWindow("Opening&Closing window");
 | 
						|
cvDestroyWindow("Erosion&Dilation window");
 |