⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lineseg.m

📁 hopfield neural network for binary image recognition
💻 M
字号:
% LINESEG - Form straight line segements from an edge list.%% Usage: seglist = lineseg(edgelist, tol)%% Arguments:  edgelist - Cell array of edgelists where each edgelist is an%                        Nx2 array of (row col) coords.%             tol      - Maximum deviation from straight line before a%                        segment is broken in two (measured in pixels).% Returns:%             seglist  - A cell array of in the same format of the input%                        edgelist but each seglist is a subsampling of its%                        corresponding edgelist such that straight line%                        segments between these subsampled points do not%                        deviate from the original points by more than tol.%% This function takes each array of edgepoints in edgelist, finds the% size and position of the maximum deviation from the line that joins the% endpoints, if the maximum deviation exceeds the allowable tolerance the% edge is shortened to the point of maximum deviation and the test is% repeated.  In this manner each edge is broken down to line segments,% each of which adhere to the original data with the specified tolerance.%% See also:  EDGELINK, MAXLINEDEV, DRAWEDGELIST%% Copyright (c) 2000-2006 Peter Kovesi% School of Computer Science & Software Engineering% The University of Western Australia% http://www.csse.uwa.edu.au/% % Permission is hereby granted, free of charge, to any person obtaining a copy% of this software and associated documentation files (the "Software"), to deal% in the Software without restriction, subject to the following conditions:% % The above copyright notice and this permission notice shall be included in % all copies or substantial portions of the Software.%% The Software is provided "as is", without warranty of any kind.% December 2000 - Original version% February 2003 - Added the returning of nedgelist data.% December 2006 - Changed so that separate cell arrays of line segments are%                 formed, in the same format used for edgelistsfunction seglist = lineseg(edgelist, tol)        Nedge = length(edgelist);    seglist = cell(1,Nedge);        for e = 1:Nedge        y = edgelist{e}(:,1);   % Note that (col, row) corresponds to (x,y)	x = edgelist{e}(:,2);	fst = 1;                % Indices of first and last points in edge	lst = length(x);        % segment being considered.	Npts = 1;		seglist{e}(Npts,:) = [y(fst) x(fst)];		while  fst<lst	    [m,i] = maxlinedev(x(fst:lst),y(fst:lst));  % Find size & posn of                                                        % maximum deviation.	    	    while m > tol       % While deviation is > tol  		lst = i+fst-1;  % Shorten line to point of max deviation by adjusting lst		[m,i] = maxlinedev(x(fst:lst),y(fst:lst));	    end		    Npts = Npts+1;	    seglist{e}(Npts,:) = [y(lst) x(lst)];	    	    fst = lst;        % reset fst and lst for next iteration	    lst = length(x);	end    end    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -