/* CvvImage class definition */
class CV_EXPORTS CvvImage
{
public:
CvvImage();
virtual ~CvvImage();
/* Create image (BGR or grayscale) */
virtual bool Create( int width, int height, int bits_per_pixel, int image_origin = 0 );
/* Load image from specified file */
virtual bool Load( const char* filename, int desired_color = 1 );
/* Load rectangle from the file */
virtual bool LoadRect( const char* filename, int desired_color, CvRect r );
#ifdef WIN32
virtual bool LoadRect( const char* filename, int desired_color, RECT r )
{
return LoadRect( filename, desired_color, cvRect( r.left, r.top, r.right - r.left, r.bottom - r.top ));
}
#endif
/* Save entire image to specified file. */
virtual bool Save( const char* filename );
/* Get copy of input image ROI */
virtual void CopyOf( CvvImage& image, int desired_color = -1 );
virtual void CopyOf( IplImage* img, int desired_color = -1 );
IplImage* GetImage() { return m_img; };
virtual void Destroy(void);
/* width and height of ROI */
int Width() { return !m_img ? 0 : !m_img->roi ? m_img->width : m_img->roi->width; };
int Height() { return !m_img ? 0 : !m_img->roi ? m_img->height : m_img->roi->height;};
int Bpp() { return m_img ? (m_img->depth & 255)*m_img->nChannels : 0; };
virtual void Fill( int color );
/* draw to highgui window */
virtual void Show( const char* window );
#ifdef WIN32
/* draw part of image to the specified DC */
virtual void Show( HDC dc, int x, int y, int width, int height, int from_x = 0, int from_y = 0 );
/* draw the current image ROI to the specified rectangle of the destination DC */
virtual void DrawToHDC( HDC hDCDst, RECT* pDstRect );
#endif
protected: IplImage* m_img;
};
方法一:
CvvImage::Show
void CvvImage::Show(const char* window);
显示一个图像。 和cvShowImage相似。
方法二:
CvvImage::Show
void CvvImage::Show(HDC dc, int x, int y, int w, int h, int from_x, int from_y);
绘制图像的部分到DC。 图像没有缩放。此函数仅在Windows下有效。
dc
设备描述符。
x
局部图像列起点。
y
局部图像行起点。
w
局部图像宽度。
h
局部图像高度。
from_x
设备描述符x起点。
from_y
设备描述符y起点。
例:
// 从图像100行200列开始, 显示400行600列图像到设备描述符的10行20列开始的位置
CvvImage img;
img.Load("example.tiff");
img.Show(hDC, 200, 100, 600, 400, 20, 10);
方法三:
CvvImage::DrawToHDC
void CImage::DrawToHDC(HDC hDCDst, RECT* pDstRect);
绘制图像的ROI区域到DC的pDstRect, 如果图像大小和pDstRect不一致, 图像会拉伸/压缩。此函数仅在Windows下有效。
hDCDst
设备描述符。
pDstRect
对应的设备描述符区域。
例:
CvvImage img;
img.Load("example.tiff");
CRect rect;
rect.left = 100;
rect.top = 200;
rect.right = rect.left + 600;
rect.bottom = rect.top + 400;
img.DrawToHDC(hDC, &rect);