PARP Research Group University of Murcia, Spain


src/qvip/qvipp/qvipp.h

00001 /*
00002  *      Copyright (C) 2007, 2008, 2009. PARP Research Group.
00003  *      <http://perception.inf.um.es>
00004  *      University of Murcia, Spain.
00005  *
00006  *      This file is part of the QVision library.
00007  *
00008  *      QVision is free software: you can redistribute it and/or modify
00009  *      it under the terms of the GNU Lesser General Public License as
00010  *      published by the Free Software Foundation, version 3 of the License.
00011  *
00012  *      QVision is distributed in the hope that it will be useful,
00013  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  *      GNU Lesser General Public License for more details.
00016  *
00017  *      You should have received a copy of the GNU Lesser General Public
00018  *      License along with QVision. If not, see <http://www.gnu.org/licenses/>.
00019  */
00020 
00024 
00025 #ifndef QVIPP_H
00026 #define QVIPP_H
00027 
00028 #include <ipp.h>
00029 
00030 #include <QMap>
00031 #include <QSize>
00032 #include <QPoint>
00033 #include <QVImage>
00034 #include <QVIndexedStringList>
00035 
00036 class QVMatrix;
00037 class QVVector;
00038 
00039 #include <qvip/qvipp/qvippfunctions.h>
00040 
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 void Copy(const QVImage<uChar, 1> &src1, const QVImage<uChar, 1> &src2, const QVImage<uChar, 1> &src3, QVImage<uChar, 3> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00068 
00072 void Copy(const QVImage<uShort, 1> &src1, const QVImage<uShort, 1> &src2, const QVImage<uShort, 1> &src3, QVImage<uShort, 3> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00073 
00077 void Copy(const QVImage<sShort, 1> &src1, const QVImage<sShort, 1> &src2, const QVImage<sShort, 1> &src3, QVImage<sShort, 3> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00078 
00082 void Copy(const QVImage<sInt, 1> &src1, const QVImage<sInt, 1> &src2, const QVImage<sInt, 1> &src3, QVImage<sInt, 3> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00083 
00087 void Copy(const QVImage<sFloat, 1> &src1, const QVImage<sFloat, 1> &src2, const QVImage<sFloat, 1> &src3, QVImage<sFloat, 3> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00088 
00091 void Copy(const QVImage<uChar, 3> &src, QVImage<uChar, 1> &dest1, QVImage<uChar, 1> &dest2, QVImage<uChar, 1> &dest3, const QPoint &destROIOffset = QPoint(0,0));
00092 
00095 void Copy(const QVImage<sFloat, 3> &src, QVImage<sFloat, 1> &dest1, QVImage<sFloat, 1> &dest2, QVImage<sFloat, 1> &dest3, const QPoint &destROIOffset = QPoint(0,0));
00096 
00105 void Copy(const QVImage<uChar, 3> &src, const uChar channel, QVImage<uChar, 1> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00106 
00110 void Copy(const QVImage<uShort, 3> &src, const uChar channel, QVImage<uShort, 1> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00111 
00115 void Copy(const QVImage<sShort, 3> &src, const uChar channel, QVImage<sShort, 1> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00116 
00120 void Copy(const QVImage<sInt, 3> &src, const uChar channel, QVImage<sInt, 1> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00121 
00125 void Copy(const QVImage<sFloat, 3> &src, const uChar channel, QVImage<sFloat, 1> &dest,  const QPoint &destROIOffset = QPoint(0,0));
00126 
00130 void Compare(const QVImage<uChar,3> &src1, const QVImage<uChar,3> &src2, QVImage<uChar> &dest, IppCmpOp ippCmpOp = ippCmpEq,  const QPoint &destROIOffset = QPoint(0,0));
00131 
00135 void Compare(const QVImage<uShort,3> &src1, const QVImage<uShort,3> &src2, QVImage<uChar> &dest, IppCmpOp ippCmpOp = ippCmpEq,  const QPoint &destROIOffset = QPoint(0,0));
00136 
00140 void Compare(const QVImage<sShort,3> &src1, const QVImage<sShort,3> &src2, QVImage<uChar> &dest, IppCmpOp ippCmpOp = ippCmpEq,  const QPoint &destROIOffset = QPoint(0,0));
00141 
00145 void Compare(const QVImage<sFloat,3> &src1, const QVImage<sFloat,3> &src2, QVImage<uChar> &dest, IppCmpOp ippCmpOp = ippCmpEq,  const QPoint &destROIOffset = QPoint(0,0));
00146 
00149 void YUV420ToRGB(const QVImage<uChar, 1> &srcY, const QVImage<uChar, 1> &srcU, const QVImage<uChar, 1> &srcV,
00150         QVImage<uChar, 3> &destRGB,  const QPoint &destROIOffset = QPoint(0,0));
00151 
00154 void RGBToYUV420(const QVImage<uChar, 3> &src, QVImage<uChar, 1> &dst1, QVImage<uChar, 1> &dst2, QVImage<uChar, 1> &dst3,
00155         const QPoint &destROIOffset = QPoint(0,0));
00156 
00163 void Filter(const QVImage<sFloat> &src, QVImage<sFloat> &dest, const QVMatrix kernel, const QPoint &destROIOffset = QPoint(0,0));
00164 
00165 
00174 void FilterColumn(const QVImage<sFloat> &src, QVImage<sFloat> &dest, const QVVector kernel, const QPoint &destROIOffset = QPoint(0,0));
00175 
00184 void FilterRow(const QVImage<sFloat> &src, QVImage<sFloat> &dest, const QVVector kernel, const QPoint &destROIOffset = QPoint(0,0));
00185 
00198 void FilterSharpen(const QVImage<uChar> &src, QVImage<uChar> &dest, const QPoint &destROIOffset = QPoint(0,0));
00199 
00203 void FilterSharpen(const QVImage<sFloat> &src, QVImage<sFloat> &dest, const QPoint &destROIOffset = QPoint(0,0));
00204 
00219 void FilterSobelHorizBorder(const QVImage<uChar> &src, QVImage<sShort> &dest, const IppiMaskSize maskSize,
00220         const IppiBorderType borderType, const uChar borderValue, QVImage<uChar> &buffer,  const QPoint &destROIOffset = QPoint(0,0));
00221 
00236 void FilterSobelNegVertBorder(const QVImage<uChar> &src, QVImage<sShort> &dest, const IppiMaskSize maskSize,
00237         const IppiBorderType borderType, const uChar borderValue, QVImage<uChar> &buffer,  const QPoint &destROIOffset = QPoint(0,0));
00238 
00252 void Resize(const QVImage<uChar> &src, QVImage<uChar> &dest, int interpolation = IPPI_INTER_LINEAR);
00253 
00257 void Resize(const QVImage<sFloat> &src, QVImage<sFloat> &dest, int interpolation = IPPI_INTER_LINEAR);
00258 
00262 void Resize(const QVImage<uShort> &src, QVImage<uShort> &dest, int interpolation = IPPI_INTER_LINEAR);
00263 
00264 
00268 void Resize(const QVImage<uChar,3> &src, QVImage<uChar,3> &dest, int interpolation = IPPI_INTER_LINEAR);
00269 
00279 void CannyGetSize(const QVGenericImage &src, QVImage<uChar> &buffer);
00280 
00291 void FilterSobelHorizGetBufferSize(const QVGenericImage &src, const IppiMaskSize maskSize, QVImage<uChar> &buffer);
00292 
00303 void FilterSobelNegVertGetBufferSize(const QVGenericImage &src, const IppiMaskSize maskSize, QVImage<uChar> &buffer);
00304 
00316 void MinEigenValGetBufferSize( const QVGenericImage &src, QVImage<uChar> &buffer, uInt apertureSize = 5, uInt avgWindow = 5);
00317 
00327 void FloodFillGetSize(const QVGenericImage &src, QVImage<uChar> &buffer);
00328 
00352 void MinEigenVal(const QVImage<uChar> &src, QVImage<sFloat> &dest, QVImage<uChar> &buffer,
00353         uInt apertureSize = 3, uInt avgWindow = 5, IppiKernelType kernel = ippKernelSobel,  const QPoint &destROIOffset = QPoint(0,0));
00354 
00364 void FastMarchingGetBufferSize(const QVGenericImage &image, QVImage<uChar> &buffer);
00365 
00368 void InpaintInitAllocC3(IppiInpaintState_8u_C3R **pState, const QVImage<sFloat> &distances, const QVImage<uChar> &mask,
00369         const sFloat radius, const IppiInpaintFlag flag);
00370 
00373 void InpaintFreeC3(IppiInpaintState_8u_C3R *pState);
00374 
00377 void InpaintInitAllocC1(IppiInpaintState_8u_C1R **pState, const QVImage<sFloat> &distances, const QVImage<uChar> &mask,
00378         const sFloat radius, const IppiInpaintFlag flag);
00379 
00382 void InpaintFreeC1(IppiInpaintState_8u_C1R *pState);
00383 
00396 QMap<sInt, int> HistogramRange(const QVImage<uChar, 1> &src, QList<uChar> values);
00397 
00406 QVector<int> HistogramRange(const QVImage<uChar, 1> &src);
00407 
00431 void FloodFillRange4Connected(QVImage<uChar> &img, QVImage<uChar> &buffer,
00432         uInt seedX, uInt seedY, uChar newVal, uChar minDelta, uChar maxDelta);
00433 
00458 void FloodFillGradient4Connected(QVImage<uChar> &img, QVImage<uChar> &buffer,
00459         uInt seedX, uInt seedY, uChar newVal, uChar minDelta, uChar maxDelta);
00460 
00486 void FilterGaussBorder(const QVImage<sFloat, 1> &src, QVImage<sFloat, 1> &dest, QVImage<uChar> &buffer, sInt kernelSize, sFloat sigma, IppiBorderType borderType = ippBorderConst, sFloat borderValue = 0.0,  const QPoint &destROIOffset = QPoint(0,0));
00487 
00499 void FilterGaussGetBufferSize(const QVGenericImage &image, QVImage<uChar> &buffer, uInt kernelSize);
00500 
00521 void FindPeaks3x3(const QVImage<sInt, 1> &img, QVImage<uChar> &buffer, QList<QPoint> &points, sInt threshold, IppiNorm norm, uInt border, uInt maxPeakCount);
00522 
00526 void FindPeaks3x3(const QVImage<sFloat, 1> &img, QVImage<uChar> &buffer, QList<QPoint> &points, sFloat threshold, IppiNorm norm, uInt border, uInt maxPeakCount);
00527 
00528 
00539 void FindPeaks3x3GetBufferSize(const QVImage<sInt,1> &image, QVImage<uChar> &buffer);
00540 
00545 void FindPeaks3x3GetBufferSize(const QVImage<sFloat,1> &image, QVImage<uChar> &buffer);
00546 
00559 void    WarpPerspective(const QVImage<uChar> &src, QVImage<uChar> &dest, const QVMatrix &rectifyingHomography, int interpolation = IPPI_INTER_LINEAR,  const QPoint &destROIOffset = QPoint(0,0));
00560 
00564 void    WarpPerspective(const QVImage<uChar,3> &src, QVImage<uChar,3> &dest, const QVMatrix &rectifyingHomography, int interpolation = IPPI_INTER_LINEAR,  const QPoint &destROIOffset = QPoint(0,0));
00565 
00566 #endif



QVision framework. PARP research group, copyright 2007, 2008.