📄 envyimage.h
字号:
// EnvyImage.h: interface for the CEnvyImage class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ENVYIMAGE_H__FAE6C234_E92E_437F_981D_C8B6AA252988__INCLUDED_)
#define AFX_ENVYIMAGE_H__FAE6C234_E92E_437F_981D_C8B6AA252988__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct COLORDEF {
BYTE plus;
BYTE r;
BYTE g;
BYTE b;
};
class CEnvyImage
{
public:
void CEnvyImage::CreateDisplaRegionGrowImage(int red, int green, int blue, int gray,CPoint piont,int nThreshold);
int RegionGrow(LPBYTE lpImageSource,LPBYTE lpImageTarget,BITMAPINFO* bitmap,int red,int green,int blue,int band,int order,int gray,int row,int col,int saveCol,CPoint point,int nThreshold);
void CreateDisplaSharpenImage(int red,int green,int blue,int gray);
int Sharpen(LPBYTE lpImageSource,LPBYTE lpImageTarget,BITMAPINFO* bitmap,int red,int green,int blue,int band,int order,int gray,int row,int col,int saveCol);
void CreateDisplaTVIImage(int red, int green, int blue, int gray);
int CreatTVIImage(LPBYTE lpImageSource,LPBYTE lpImageTarget,BITMAPINFO* bitmap,int red,int green,int blue,int band,int order,int gray,int row,int col,int saveCol); // 用给定的裸数据创建可以显示的TVI影象;
void GetClassColor(int* nR,int* nG,int* nB,int nClass); // 获取各类的显示颜色
void ChangeClassColor(int* nR,int* nG,int* nB, int nClass); // 改变各类的显示色
int DisplatClusterImage(); // 形成聚类结果的显示图象
BITMAPINFO* GetEmptyClusterBitInf(); // 获取聚类图象空的文件头信息头指针
LPBYTE GetEmptyClusterImage(); // 获取空的聚类结果影象数据块
int GetOrder(); // 获取源图象的排列次序
int GetCol();
int GetRow(); // 获取影象的行列数
LPVOID GetData(); // 获取多波段影象数据指针
int GetBand(); // 获取波段数
void DrawImage(int srcOrgx,int srcOrgy,int srcWidth,int srcHeight,CDC* pDC,int tarOrgx,int tarOrgy,int tarWidth,int tarHeight,DWORD srccy); // 在窗口里显示影象
void CreateDisplatImage(int red,int green,int blue,int gray); // 按不同的波段组合方式显示影象
int LoadImage(LPCSTR lpszPathName); // 读取影象
CEnvyImage();
virtual ~CEnvyImage();
protected:
int OpenHeader(const char *lpszPathName, int &row, int &col, int &band,int &offset,int& order); // 打开头文件
// attribute
private:
HANDLE m_globalMemory;
void DetachMapFile(); // 断开文件映射
BOOL AttachMapFile(const char* strPathname, BOOL bShare); // 文件映射
void CreatRawHeader(int nwidth,int nheight,int savewidth,int nbit,HPALETTE& hPalette,BITMAPINFO* &bitmapInfo);// 给裸数据创建影象头用于显示
HPALETTE CreateDIBPalette(BITMAPINFO* pBitmapInfo); // 创建调色板
int CreateImage(LPBYTE lpImageSource,LPBYTE lpImageTarget,BITMAPINFO* bitmap,int red,int green,int blue,int band,int order,int gray,int row,int col,int saveCol); // 用给定的裸数据创建可以显示的影象
void CreateImageHeader(BITMAPINFO& bitmapInfo,int row,int col,int saveCol,int gray); // 创建影象信息头
void Empty(); // 收回资源
HPALETTE m_hpalette; // 调色板
HPALETTE m_hClusterPalette; // 显示聚类结果的调色板
int m_offSet; // 影象数据相对于文件开始的字节数
LPVOID m_lpData; // 存储所有数据
LPBYTE m_lpImage; // 存储用于显示的数据
LPBYTE m_lpClusterImage; // 存储分类结果的影象
BITMAPINFO* m_bitmapInfo; // 用于显示的文件信息头
BITMAPINFO* m_bitmapInfoCluster; // 分类结果影象信息存放
int m_pixelOrder; // 影象数据存储格式
int m_band; // 波段数
int m_imageRow,m_imageCol; // 图象长宽
int m_imageSaveCol; // 显示影象时一行的字节数目
int m_gray; // 是否显示灰度影象
int m_orderRed,m_orderGreen,m_orderBlue; // 彩色显示时候各通道对应的波段顺序
int m_clusterRow,m_clusterCol; // 分类结果的长宽
HANDLE m_hFile; // 文件映射时的两个参数
HANDLE m_hMap;
BOOL m_displayCluster; // 是否显示聚类影象
};
#endif // !defined(AFX_ENVYIMAGE_H__FAE6C234_E92E_437F_981D_C8B6AA252988__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -