📄 cvtest.h
字号:
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's 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 Intel Corporation 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 Intel Corporation or 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.
//
//M*/
#pragma once
#include <windows.h>
#include "CV.hpp"
#include "cvaux.h"
#include "ats.h"
#include "HighGUI.h"
#ifdef __cplusplus
extern "C"{
#endif
#define IPPI_CHECK( cvFun ) \
{ \
CvStatus result = cvFun; \
if( result != CV_NO_ERR ) \
{ \
trsWrite(ATS_LST, \
"The error code %d was returned by the function call\n" \
"%s\n" \
"in file %s, line %d", \
result, #cvFun, __FILE__, __LINE__ ); \
return trsResult( TRS_FAIL, \
"A function from OpenCV library returns error status" ); \
} \
}
#define ATS_CHECK( atsFun ) \
{ \
CvStatus result = (CvStatus)atsFun; \
if( result != IPP_NO_ERR ) \
{ \
trsWrite(ATS_LST, \
"The error code %d was returned by the function call\n" \
"%s\n" \
"in file %s, line %d", \
result, #atsFun, __FILE__, __LINE__ ); \
return trsResult( TRS_FAIL, \
"A function from ATS library returns error status" ); \
} \
}
/*F///////////////////////////////////////////////////////////////////////////////////////
// Name: atsCompare1Db, atsCompare1Dc, atsCompare1Dfl
// Purpose:
// Comparing two 1D array and writing results to SUM & LST files
// Context:
// Parameters:
// ArrayAct - actual array
// ArrayExp - expected array
// lLen - lenght of this arrays
// Tol - tolerable limit
// Returns:
// Number of differents elements
// Notes:
//F*/
long atsCompare1Db( uchar* ArrayAct, uchar* ArrayExp, long lLen, int Tol );
long atsCompare1Dc( char* ArrayAct, char* ArrayExp, long lLen, int Tol );
long atsCompare1Dfl( float* ArrayAct, float* ArrayExp, long lLen, double Tol );
long atsCompare2Db( uchar* ArrayAct, uchar* ArrayExp, CvSize size, int stride, int Tol );
long atsCompare2Dc( char* ArrayAct, char* ArrayExp, CvSize size, int stride, int Tol );
long atsCompare2Dfl( float* ArrayAct, float* ArrayExp, CvSize size, int stride, double Tol );
/*F///////////////////////////////////////////////////////////////////////////////////////
// Name: atsConvert
// Purpose: Converts one IPL image to another.
// It is similar to iplConvert but supports 32F depth
// Context:
// Parameters:
// Returns:
// Notes:
//F*/
void atsConvert( IplImage* src, IplImage* dst );
/*
Fills the whole image or selected ROI by random numbers.
Supports only 8u, 8s and 32f formats
*/
void atsFillRandomImage( IplImage *img, double low, double high );
CvPoint atsRandPoint( AtsRandState* rng_state, CvSize size );
CvPoint2D32f atsRandPoint2D32f( AtsRandState* rng_state, CvSize size );
/* Allocates/Deallocates the IPL image and (may be) clears it */
IplImage* atsCreateImage( int w, int h, int depth, int nch, int clear_flag );
void atsReleaseImage( IplImage* img );
/* Extracts ROI data from the image and writes it in a single row */
void atsGetDataFromImage( IplImage *img, void *data );
/* Writes linear data to the image ROI */
void atsPutDataToImage( IplImage *img, void *data );
/*
Retrieves various information about the image:
*pData - pointer to the whole image or ROI (if presents)
*pStep - distance between rows in bytes
*pSz - width and height of the whole image or ROI (if presents)
*pDepth - depth of image (in the IPL format: IPL_DEPTH_xxxx )
*pChannels - number of channels
*pBtPix - bytes per pixel = ((depth & 255)>>3)*channels;
Any of the destination pointers may be 0 if the appropriate parameter is'nt needed.
*/
void atsGetImageInfo( IplImage* img, void** pData, int* pStep,
CvSize* pSz, int* pDepth, int* pChannels,
int* pBtPix );
/*
The function applies min filter using specified structuring element.
*/
void atsMinFilterEx( IplImage* src, IplImage* dst, IplConvKernel* B );
/*
The function applies max filter using specified structuring element.
*/
void atsMaxFilterEx( IplImage* src, IplImage* dst, IplConvKernel* B );
/*
Create IplConvKernelFP for calclulating derivative
*/
IplConvKernelFP* atsCalcDervConvKernel( int Xorder, int Yorder, int apertureSize, int origin );
/*
Replicates left and right ROI borders dx times,
top and bottom ROI borders dy times.
*/
void atsReplicateBorders( IplImage* img, int dx, int dy );
/*
The convolution function.
Supports only 32fC1 images
*/
void atsConvolve( IplImage* src, IplImage* dst, IplConvKernelFP* ker );
/* This function calculates kernels for Sobel operators */
void atsCalcKernel( int datatype,
int Xorder,
int Yorder,
int apertureSize,
char* KerX,
char* KerY,
CvSize* kerLens,
int origin);
/*
Fills the whole image or selected ROI by random numbers.
Supports only 8u, 8s and 32f formats
*/
void atsFillRandomImageEx( IplImage *img, AtsRandState* state );
/* dst(x,y) = scale*src(x,y) + shift */
void atsScaleAddImage( IplImage* src, IplImage* dst, double scale, double shift );
/******************************************************************************/
/* Image statistics */
/******************************************************************************/
void atsCalcImageStatistics(
IplImage* img, IplImage* mask,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -