source: eviacam/trunk/fuentes/creavision/crvmisc.h @ 29

Last change on this file since 29 was 29, checked in by mabarracus, 4 years ago

added eviacam content

  • Property svn:executable set to *
File size: 3.6 KB
Line 
1/////////////////////////////////////////////////////////////////////////////
2// Name:        crvmisc.h
3// Purpose: 
4// Author:      Cesar Mauri Loba (cesar at crea-si dot com)
5// Modified by:
6// Created:     23/05/2008
7// Copyright:   (C) 2008 Cesar Mauri Loba - CREA Software Systems
8//
9//  This program is free software: you can redistribute it and/or modify
10//  it under the terms of the GNU General Public License as published by
11//  the Free Software Foundation, either version 3 of the License, or
12//  (at your option) any later version.
13//
14//  This program is distributed in the hope that it will be useful,
15//  but WITHOUT ANY WARRANTY; without even the implied warranty of
16//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17//  GNU General Public License for more details.
18//
19//  You should have received a copy of the GNU General Public License
20//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
21/////////////////////////////////////////////////////////////////////////////
22#ifndef CRVMISC_H
23#define CRVMISC_H
24
25#include <cv.h>
26
27/*
28typedef struct {
29        double x, y;
30} RPoint;
31*/
32
33// Dona l'adre�a de mem�ria del p�xel a la posici� X, Y
34void *crvImgOffset (const IplImage *img, int x, int y);
35
36// Dona l'adre�a de mem�ria del p�xel a la posici� X, Y (DEPRECAT)
37char *crvImgByteOffset (const IplImage *img, int x, int y);
38
39// Calcula limits en X, Y segons el ROI d'una imatge
40void crvGetROILimits (const IplImage *img, int &xIni, int &yIni, 
41                                   int &xLim, int &yLim);
42
43// Dona la intersecci� entre les ROI de 2 imatges
44void crvGetROIIntersectionLimits (IplImage* img1, IplImage* img2,
45                                                                  int &xIni1, int &yIni1, int &xLim1, int &yLim1,
46                                                                  int &xIni2, int &yIni2, int &xLim2, int &yLim2);
47
48
49// Ajusta un rectangle per que quedi dins uns limits establerts
50// Retorna true si s'ha modificat el rectangle
51bool crvFitRect (CvRect *rect, int width, int height);
52bool crvFitROI (IplImage *img, IplROI *roi);
53
54// Pinta en ASCII una imatge binaria
55//void IplAsciiPaint (IplImage *img, unsigned short thres);
56
57// Copia una ROI d'una imatge sobre una nova imatge aplicant
58// l'escalat que s'indica per par�metre. La ROI de la imatge
59// dest� ha de ser suficientment gran com per encabir
60// la ROI origen un cop escalada.
61//void IplCopyScaleImage (IplImage *src, IplImage *dst, float scale);
62
63// Semi-binaritza una imatge de manera que per sobre o per sota
64// del llindar indicat no es modifiquen els valors dels p�xels
65//void crvSemiBinarize (IplImage *img, unsigned char thres, unsigned char fillVal, bool fillLower);
66
67// Calcula la diferencia de 2 imatges en valor absolut
68void crvAbsSubstract (IplImage *srcA, IplImage *srcB, IplImage *dst);
69
70void crvConvert16BinToRGBA (IplImage *pSrcImg, IplImage *pDstImg);
71
72static inline
73void crvInvalidateCvPoint (CvPoint *p) 
74{
75        p->x= -1;
76}
77
78static inline 
79int crvCvPointIsValid (CvPoint *p)
80{
81        return (p->x> -1);
82}
83
84static inline
85void crvInvalidateCvPoint2D32f (CvPoint2D32f *p) 
86{
87        p->x= 999999999.0f;
88}
89
90static inline 
91int crvCvPoint2D32fIsValid (CvPoint2D32f *p)
92{
93        return (p->x<= 999999998.0f);
94}
95
96static inline
97void crvInvalidateCvRect (CvRect *p) 
98{
99        p->x= -1;
100}
101
102static inline 
103int crvCvRectIsValid (CvRect *p)
104{
105        return (p->x> -1);
106}
107
108
109
110void crvConvert32FPToGray (IplImage *pSrcImg, IplImage *pDstImg,
111                                                   float min, float max);
112
113void crvThresholdFP (IplImage *pSrcImg, IplImage *pDstImg, 
114                                         float threshold, float zero= 0.0f);
115
116
117//void IplGradientModulus (IplImage *pSrcImg, IplImage *pDstImg);
118
119//void IplGradientModulus (IplImage *pSrcImg, IplImage *pDstImg,
120//                                               IplImage *pTmpImg1, int *maxX, int *maxY);
121
122
123
124#endif
Note: See TracBrowser for help on using the repository browser.