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

📄 matscii.m

📁 hopfield neural network for binary image recognition
💻 M
字号:
% MATSCII - Function to generate ASCII images%%  Usage: picci = matscii(im, width, gamma, filename)%%   im    - 2D array of image brightness colours.%           Image can be grey scale or colour.%   width - desired width of resulting character image.%   gamma    - optional gamma value to enhance contrast,%              gamma > 1 increases contrast, < 1 decreases contrast.%   filename - optional filename in which to save the result.%%   picci - the resulting 2D array of characters.%% Copyright (c) 2000-2005 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.% September 2000% August    2005  tweaks for Octave% September 2005  RBG conversion error fixed (thanks to Firas Zeineddine)function picci = matscii(im, width, gamma, filename)% ASCII grey scale%g = '$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`''. ';g = '#8XOHLTI)i=+;:,. ';     % This seems to be a better `grey scale'gmax = length(g);charAspect = 0.55;           % Width/height aspect ratio of charactersif nargin <=2  gamma = 1;                 % Default gamma valueendim = double(im);if ndims(im) == 3  % We have a colour image  im = (im(:,:,1) + im(:,:,2) + im(:,:,3))/3;   % Grey value = (R+G+B)/3end[rows, cols] = size(im);scale = width/cols;rows = round(charAspect * scale * rows);   % Rescaled rows and cols valuescols = round(scale * cols);im = normalise(im).^gamma;         % Rescale range 0-1 and apply gammaim = imresize(im, [rows, cols]);      %im = myrescale(im, [rows, cols]); % Use this if you do not have the image                                   %toolboxim = round(im*(gmax-1) + 1);       % Rescale to range 1..gmax and round to ints.picci = char(zeros(rows,cols));    % Preallocate memory for output image.for r = 1: rows  for c = 1:cols    picci(r,c) = g(im(r,c));  endendif nargin == 4    % we have a filename  [fid, msg] = fopen(filename,'wt');  error(msg);  for r = 1: rows   fprintf(fid,'%s\n',picci(r,:));  end  fclose(fid);end%-------------------------------------------------------------------% Internal function to rescale an image so that this code% does not require the image processing toolbox to run.%-------------------------------------------------------------------function newim = myrescale(im,  newRowsCols)[rows,cols] = size(im);newrows = newRowsCols(1);newcols = newRowsCols(2);rowScale = (newrows-1)/(rows-1);     % Arrays start at 1 rather than 0colScale = (newcols-1)/(cols-1);newim = zeros(newrows, newcols);% For each pixel in the final image find where that pixel `came from'% in the source image - use this as the scaled image value% Scaling eqns account for the fact that MATLAB arrays start at 1 rather than 0for r = 1: newrows  for c = 1: newcols   sourceRow = round((r-1)/rowScale + 1);   sourceCol = round((c-1)/colScale + 1);   newim(r,c) = im(sourceRow, sourceCol);  endend

⌨️ 快捷键说明

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