matlab 二值图像 求白色区域最小外接矩阵 长宽
Matlab关于二值图像的最小外接矩形问题借用minboundrect 现有函数。function [rectx,recty,area,perimeter] = minboundrect(x,y,metric)% minboundrect: Compute the minimal bounding rectangle of points in the plane% usage: [rectx,recty,area,perimeter] = minboundrect(x,y,metric)%% arguments: (input)% x,y - vectors of points, describing points in the plane as% (x,y) pairs. x and y must be the same lengths.%% metric - (OPTIONAL) - single letter character flag which% denotes the use of minimal area or perimeter as the% metric to be minimized. metric may be either 'a' or 'p',% capitalization is ignored. Any other contraction of 'area'% or 'perimeter' is also accepted.%% DEFAULT: 'a' ('area')%% arguments: (output)% rectx,recty - 5x1 vectors of points that define the minimal% bounding rectangle.%% area - (scalar) area of the minimal rect itself.%% perimeter - (scalar) perimeter of the minimal rect as found%%% Note: For those individuals who would prefer the rect with minimum% perimeter or area, careful testing convinces me that the minimum area% rect was generally also the minimum perimeter rect on most problems% (with one class of exceptions). This same testing appeared to verify my% assumption that the minimum area rect must always contain at least% one edge of the convex hull. The exception I refer to above is for% problems when the convex hull is composed of only a few points,% most likely exactly 3. Here one may see differences between the% two metrics. My thanks to Roger Stafford for pointing out this% class of counter-examples.%% Thanks are also due to Roger for pointing out a proof that the% bounding rect must always contain an edge of the convex hull, in% both the minimal perimeter and area cases.%%% See also: minboundcircle, minboundtri, minboundsphere%%% default for metricif (nargin<3) || isempty(metric) metric = 'a';elseif ~ischar(metric) error 'metric must be a character flag if it is