内容提要:本文主要实现了opencv中Mat矩阵与常用BGR24位彩色图像LPBYTE矩阵的转换。
注意1:每一行需要4字节对齐。
m_nScanLineSrc = ( m_nWidthSrc * m_nBitCountsSrc / 8 + 3 )/4*4;
注意2:动态获取Mat矩阵(x,y)处的图像数据。
*(m_ImgSrc.data + y*m_nScanLineSrc + x*m_nBitCountsSrc/8 + k);
代码:
DibImg.h
#pragma once
#include <opencv2/opencv.hpp>
using namespace cv;
class CDibImg
{
public:
CDibImg(void);
CDibImg(const CDibImg& );
~CDibImg(void);
public:
bool ReadImg( const char* filename );
void ShowImg( const char* filename,
LPBYTE lpImgObj);
void Shutdown();
int GetImgWidthSrc();
int GetImgHeightSrc();
public:
LPBYTE m_lpImgSrc;//源图像
Mat m_ImgSrc;
int m_nScanLineSrc;//一行像素占的位数
int m_nBitCountsSrc;//单个像素占的位数
int m_nWidthSrc;//图像