Red de conocimiento informático - Aprendizaje de programación - Código fuente de seguimiento de vídeo de Matlab

Código fuente de seguimiento de vídeo de Matlab

Función = Contorno(varargin)

Gráfico de contorno de contorno.

CONTOUR(Z) es el mapa de contorno de la matriz Z, procesando los valores en Z

Representa la altura sobre el plano. Los gráficos de contorno son curvas horizontales

para ciertos valores de V, Z. El valor V se elige automáticamente.

CONTOUR(X,Y,Z) X e Y especifican las coordenadas (X,Y)

Superficie como para navegar. Los datos X e Y se transpondrán u ordenarán

convirtiéndolos en formato MESHGRID, dependiendo de la primera

fila y columna de X (utilizada para posicionar los datos) y

La primera fila de X y la primera columna de Y (para ordenar los datos). Los

datos X e Y deben ordenarse de forma coherente si el primer

elemento de Todos los elementos es mayor

que el segundo. Del mismo modo, Y debe ordenarse consistentemente fila por fila.

CONTOUR(Z,N) y CONTOUR(X,Y,Z,N) dibujan N líneas de contorno,

anula el valor automático.

Contorno(Z,V) y Contorno(X,Y,Z,V) dibujan contornos de longitud (V)

Especificado en el valor v del vector. Calcule un solo contorno en el nivel v usando CONTOUR(Z,) o

CONTOUR(X,Y,Z,).

El contorno (AX,...) se dibuja en AX en lugar de GCA.

= Contour(...) devuelve la matriz de contorno C, como se describe en

Maneja H para los objetos CONTOURC y contourgroup. Este identificador puede

utilizarse como entrada para CLABEL.

Los contornos generalmente se colorean según el mapa de colores actual

y se dibujan como objetos de parche. Puedes anular este comportamiento

con la sintaxis contorno(...LINESPEC) para dibujar un contorno

con un color y estilo de línea específicos. Consulte Ayuda de trazado

para obtener más información sobre los valores de LINESPEC.

La entrada del esquema anterior puede ir seguida de pares atributo/valor

para especificar atributos adicionales del objeto del esquema.

Se utilizó el código de R. Pawlowicz para superficies paramétricas y

etiquetas de contorno incrustadas.

Ejemplo:

= contorno(pico); clarabel(c,h), barra de colores

Ver CONTOUR3, CONTOURF, CLABEL, COLORBAR, MESHGRID.

Detalles adicionales:

CONTOUR usa CONTOUR3 para completar la mayor parte del dibujo del contorno. A menos que

a especifique un tipo de línea, el contorno dibujará el objeto de parche

con un color de borde tomado del mapa de colores actual. Cuando se escribe línea

, se dibujará el objeto de línea.

Gracias a R. Pawlowicz (IOS) rich@ios.bc.ca por 'contours.m' y

'clabel.m/inline_labels' , De modo que los contornos ahora se pueden utilizar con superficies paramétricas

y etiquetas de contorno en línea.

Copyright 1984-2007 The MathWorks, Inc.

$Revisión: 5.18 4 . 18 $ $Fecha: 13/11/2007 00:10:21 $.

= use V6 plotapi(vara gin {:}, '-mfilename ', mfilename);

if v6

= lcontourv 6(args {:} );

Otros

Analizar posibles entradas de eje

error(nargchk(1, inf, nargin, ' struct '));

= ax check(args {:});

= parse args(args); #OK

if ~isempty(msg), error(msg# OK<); /p>

if está vacío(cax) || isa(handle(cax), ' hg.axes ')

CAX = new plot(CAX);

parax = cax

hold _ state = is hold(CAX);

Otro

parax = cax

cax = antepasado( cax, ' eje');

hold _ state = true

Fin

h = grupo de contorno de especificación (' padre ', parax, pares PV {: } );

set(h, 'refreshmode', 'auto');

c = get(h, 'matriz de contorno');

If ~ mantener estado

Ver(cax, 2);

set(cax, 'box', 'on', 'layer', 'top');

Grid(cax, "off")

Fin

plotdoneevent(cax, h);

h = double(h);

Fin

Si nargout gt0

cout = c;

Mano = h;

Fin

function = Lcontourv6(varargin)

Analizar posibles entradas de eje

error(nargchk(1, 6, nargin, ' struct '));

= verificación de hacha (vara rgin {:});

CAX = nuevo trazado(CAX);

= contour3(cax, args {:});

if ~ isempty(msg), error(msg); end #ok

set(h, 'ZData',);

if ~ishold(cax)

Ver(cax, 2);

set(cax, 'Box', 'on');

Grid(cax, "off")

Fin

función = parseargs(args)

msg="";

Separar el par pv del argumento inicial

= parse params (args);

Compruebe los parámetros de cadena especiales para los parámetros de datos finales

if ~isempty(pvpairs)

= col style( PV pairs { 1 }); #

OK

Si está vacío (tmsg)

args = {args{:}, pvpairs{1}}.

Pares PV = Pares PV(2:end);

Fin

msg = checkpvpairs(pvpairs);

Fin

Fin

p>

nargs = longitud (parámetro);

x =;

y =; p>z =;

if ischar(args{end})

= col estilo(args {end }); tmsg),

msg = sprintf('Opción desconocida "s",", args { end });

Fin

if ~isempty(c)

pvpairs = {'linecolor ', c, pares de PV {:} };

Fin

if ~isempty(l)

pvpairs = {'linestyle ', l, pares PV {:} };

Fin

NAR GS = NAR GS-1;

Fin

si (nargs == 2) || (nargs == 4)

si (nargs == 2)

z = comprobación de datos(args { 1 } );

pvpairs = { 'zdata ', z, pares PV {:} };

Otros

x = data chk(args { 1 }) ;

y = verificación de datos (args { 2 });

z = verificación de datos (args { 3 }); ,x,'ydata',y,'zdata' , z, pares PV {:} };

Fin

if(length(args { nargs })== 1) amp(fix(args{nargs}) == args {nargs})

N

zmin = min(real(double(z(:))));

zmax = max(real(double( z(:)));

if args{nargs} == 1

pvpairs = {'levellist ', (zmin zmax)/2, pares de PV {:} };

Otros

levs = linspace(zmin, zmax, args { nargs } 2

pvpairs); = {'levellist ', levs(2: end- 1), pares PV {:} };

Fin

Otros

Niveles

pvpairs = {'levellist ', único( args{nargs}), pares de PV {:} };

Fin

elseif (nargs == 1)

z = data chk(args { 1 });

pvpairs = {'zdata ',z,PV pares {:} };

elseif (nargs == 3)

x =

registro de datos(args { 1 });

y = registro de datos(args { 2 }

z = registro de datos(args { 3 }); p>pvpairs = {'xdata', x, 'ydata', y, 'zdata', z, pares PV {:} };

Fin

Si x e y, asegúrese de que los datos sean consistentes.

if ~isempty(x)

msg = xyzcheck(x, y, z

Fin

si ~ está vacío; (z amp; ampisempty(mensaje)

k = buscar(es finito(z));

zmax = max(z(k));

zmin = min(z(k));

if any(k)

warning('MATLAB:contour:NonFiniteData','Contorno no representado para ZData no finitos ') ;

elseif isempty(z) || (zmax == zmin)

Advertencia(' MATLAB: contour: ConstantData ', ' El contorno no se representa para ZData constante '); p>

Fin

Fin

args =;