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

📄 polartrans.m

📁 hopfield neural network for binary image recognition
💻 M
字号:
% POLARTRANS - Transforms image to polar coordinates%% Usage:    pim = polartrans(im, nrad, ntheta, cx, cy, linlog, shape)%% Arguments:%           im     - image to be transformed.%           nrad   - number of radius values.%           ntheta - number of theta values.%           cx, cy - optional specification of origin.  If this is not%                    specified it defaults to the centre of the image.%           linlog - optional string 'linear' or 'log' to obtain a%                    transformation with linear or logarithmic radius%                    values. linear is the default.%           shape  - optional string 'full' or 'valid'%                    'full' results in the full polar transform being%                    returned (the circle that fully encloses the original%                    image). This is the default.%                    'valid' returns the polar transform of the largest%                    circle that can fit within the image. %% Returns   pim    - image in polar coordinates with radius increasing%                    down the rows and theta along the columns. The size%                    of the image is nrad x ntheta.  Note that theta is%                    +ve clockwise as x is considered +ve along the%                    columns and y +ve down the rows. %% When specifying the origin it is assumed that the top left pixel has% coordinates (1,1).% Copyright (c) 2002 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 2002% November 2006  Correction to calculation of maxlogr (thanks to Chang Lei)function pim = polartrans(im, nrad, ntheta, cx, cy, linlog, shape)[rows, cols] = size(im);if nargin==3         % Set origin to centre.    cx = cols/2+.5;  % Add 0.5 because indexing starts at 1    cy = rows/2+.5;endif nargin < 7, shape = 'full'; endif nargin < 6, linlog = 'linear'; endif strcmp(shape,'full')         % Find maximum radius value    dx = max([cx-1, cols-cx]);    dy = max([cy-1, rows-cy]);    rmax = sqrt(dx^2+dy^2);elseif strcmp(shape,'valid')    % Find minimum radius value    rmax = min([cx-1, cols-cx, cy-1, rows-cy]);else    error('Invalid shape specification');end% Increments in radius and thetadeltatheta = 2*pi/ntheta;if strcmp(linlog,'linear')    deltarad = rmax/(nrad-1);    [theta, radius] = meshgrid([0:ntheta-1]*deltatheta, [0:nrad-1]*deltarad);    elseif strcmp(linlog,'log')    maxlogr = log(rmax);    deltalogr = maxlogr/(nrad-1);        [theta, radius] = meshgrid([0:ntheta-1]*deltatheta, exp([0:nrad-1]*deltalogr));else    error('Invalid radial transformtion (must be linear or log)');endxi = radius.*cos(theta) + cx;  % Locations in image to interpolate datayi = radius.*sin(theta) + cy;  % from. [x,y] = meshgrid([1:cols],[1:rows]);pim = interp2(x, y, double(im), xi, yi);

⌨️ 快捷键说明

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