www.pudn.com > Image_segment.rar > ImageMagick.h
//Copyright (c) 2004-2005, Baris Sumengen //All rights reserved. // // CIMPL Matrix Performance Library // //Redistribution and use in source and binary //forms, with or without modification, are //permitted provided that the following //conditions are met: // // * No commercial use is allowed. // This software can only be used // for non-commercial purposes. This // distribution is mainly intended for // academic research and teaching. // * Redistributions of source code must // retain the above copyright notice, this // list of conditions and the following // disclaimer. // * Redistributions of binary form must // mention the above copyright notice, this // list of conditions and the following // disclaimer in a clearly visible part // in associated product manual, // readme, and web site of the redistributed // software. // * Redistributions in binary form must // reproduce the above copyright notice, // this list of conditions and the // following disclaimer in the // documentation and/or other materials // provided with the distribution. // * The name of Baris Sumengen may not be // used to endorse or promote products // derived from this software without // specific prior written permission. // //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT //HOLDERS AND CONTRIBUTORS "AS IS" AND ANY //EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT //NOT LIMITED TO, THE IMPLIED WARRANTIES OF //MERCHANTABILITY AND FITNESS FOR A PARTICULAR //PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE //CONTRIBUTORS BE LIABLE FOR ANY //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, //EXEMPLARY, OR CONSEQUENTIAL DAMAGES //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT //OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, //DATA, OR PROFITS; OR BUSINESS INTERRUPTION) //HOWEVER CAUSED AND ON ANY THEORY OF //LIABILITY, WHETHER IN CONTRACT, STRICT //LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR //OTHERWISE) ARISING IN ANY WAY OUT OF THE USE //OF THIS SOFTWARE, EVEN IF ADVISED OF THE //POSSIBILITY OF SUCH DAMAGE. #pragma once #ifndef IMAGEMAGICK_H #define IMAGEMAGICK_H #include#include "cimpl.h" using namespace CIMPL; #include "wand/magick_wand.h" #include #include #ifndef ThrowWandException #define ThrowWandException(wand) \ { \ char \ *description; \ \ ExceptionType \ severity; \ \ description=MagickGetException(wand,&severity); \ (void) fprintf(stderr,"%s %s %ld %s\n",GetMagickModule(),description); \ description=(char *) MagickRelinquishMemory(description); \ exit(-1); \ } #endif namespace ImageMagick { enum CimplImageMap { I, RGB, RGBA }; struct CimplImageInfo { int Width; //Pixels int Height; //Pixels long long Size; //Bytes string Format; }; struct CimplColor { unsigned char Intensity; unsigned char Red; unsigned char Green; unsigned char Blue; unsigned char Alpha; CimplColor() { Red = 255; Green = 255; Blue = 255; Alpha = 255; Intensity = 255; } }; //enum NoiseType //{ // UndefinedNoise, // UniformNoise, // GaussianNoise, // MultiplicativeGaussianNoise, // ImpulseNoise, // LaplacianNoise, // PoissonNoise //}; // Query... - Later. // Annotate() ??? int GetImageColors(MatrixList &Image); int GetImageColors(Matrix &Image); CimplImageInfo PingImage(string filename); MatrixList AdaptiveThresholdImage(MatrixList &Image, int width, int height, int offset); Matrix AdaptiveThresholdImage(Matrix &Image, int width, int height, int offset); MatrixList AddNoiseImage(MatrixList &Image, NoiseType noise); Matrix AddNoiseImage(Matrix &Image, NoiseType noise); //AffineTransformImage(); MatrixList BlackThresholdImage(MatrixList &Image, CimplColor pixel); Matrix BlackThresholdImage(Matrix &Image, CimplColor pixel); MatrixList BlurImage(MatrixList &Image, double supportRadius, double sigma); Matrix BlurImage(Matrix &Image, double supportRadius, double sigma); MatrixList BorderImage(MatrixList &Image, CimplColor borderColor, int borderWidth, int borderHeight); Matrix BorderImage(Matrix &Image, CimplColor borderColor, int borderWidth, int borderHeight); MatrixList CharcoalImage(MatrixList &Image, double supportRadius, double sigma); Matrix CharcoalImage(Matrix &Image, double supportRadius, double sigma); MatrixList ChopImage(MatrixList &Image, int offsetX, int offsetY, int chopWidth, int chopHeight); Matrix ChopImage(Matrix &Image, int offsetX, int offsetY, int chopWidth, int chopHeight); MatrixList CropImage(MatrixList &Image, int offsetX, int offsetY, int cropWidth, int cropHeight); Matrix CropImage(Matrix &Image, int offsetX, int offsetY, int cropWidth, int cropHeight); //ColorFloodFillImage(); //DescribeImage(); //ColorizeImage(); //ContrastImage(); //ConvolveImage(); //DespeckleImage(); //DrawImage(); //EdgeImage(); //EmbossImage(); //EnhanceImage(); //EqualizeImage(); //GaussianBlurImage(); //FrameImage(); //ImplodeImage(); //GammaImage(); //LevelImage(); MatrixList MagnifyImage(MatrixList &Image); Matrix MagnifyImage(Matrix &Image); //MedianFilterImage(); //MinifyImage(); //MontageImage(); //Modulateimage(); //MotionBlurImage(); //NegateImage(); //NormalizeImage(); //PreviewImage(); //OilPaintImage(); //PosterizeImage(); //RaiseImage(); //QuantizeImage(); //ReduceNoiseImage(); //ResampleImage(); //ResizeImage(); //RollImage(); //RotateImage(); //SampleImage(); //ScaleImage(); //SharpenImage(); //ShaveImage(); //ShearImage(); //SolarizeImage(); //SpreadImage(); //SpliceImage(); //StereoImage(); //SteganoImage(); //SwirlImage(); //TextureImage(); //TintImage(); //ThresholdImage(); //TrimImage(); //UnsharpMaskImage(); //WaveImage(); //WhiteThresholdImage(); //CompareImages(); //MorphImages(); // Create an object oriented interface to ImageMagick. }; #endif