halcon学习基础-图像基本操作
来源:互联网 发布:手机淘宝账户管理在哪 编辑:程序博客网 时间:2024/06/10 11:13
摘自网上
Hobject mImg;
Hlong mW=0,mH=0,mDataPtr;
read_image(&mImg, "C:/Documents and Settings/Administrator/桌面/kk2.BMP");//1、加载图片到mImg对像中
get_image_size(mImg,&mW,&mH);//2、获取图片的宽度、高度
gen_image_const(&mImg,"byte", mW, mH);//2.1设置图像的宽度、高度
get_image_pointer1(mImg,&mDataPtr,mType,&mW,&mH);//3、将图像数据指针指向ptr 、宽度、高度
//--------4.-Vc++-->Halcon-----------------------------------------------
unsigned char *Pointer;
Pointer = new unsigned char[mH * mW];
for (i=0; i<mH; i++)
{
for (j=0; j<mW; j++)
{
Pointer[i*mW+j] = j % 255;
}
}
gen_image1_extern(&mImg, "byte", (HTuple)mW, (HTuple)mH, (long)Pointer, NULL);//设置图片对象mImg的数据内容、宽度、高度
//-----5. Halcon-->VC++---------------------------------------------------
BYTE * lpByte;
BYTE * ImageG=NULL;
int bytewidth;
bytewidth = ((long) mW * 3 + 3 ) / 4 * 4 ;
ImageG = new BYTE[ bytewidth * (long) mH ];
lpByte = (BYTE *) mDataPtr; //注意结合图像像素存储的类型进行定义
for( j = (long)mH-1; j>=0; j--)
{
//(注意tuple中图像数据的存放和VC中的差别)
for( i = 0; i < (long)mW; i++)
{
* (ImageG + j * bytewidth + i * 3 + 0 ) = * lpByte ;
* (ImageG + j * bytewidth + i * 3 + 1 ) = * lpByte ;
* (ImageG + j * bytewidth + i * 3 + 2 ) = * lpByte ;
lpByte++;
}
}
//------------6-GDI 显示图片数据-------------------------------------
BITMAPINFO * RotateBmpInfo;
BYTE * bitBuffer;
bitBuffer = NULL;
bitBuffer = new BYTE[sizeof(BITMAPINFO)];
RotateBmpInfo = (BITMAPINFO *)bitBuffer;
RotateBmpInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
RotateBmpInfo->bmiHeader.biHeight = mH;
RotateBmpInfo->bmiHeader.biWidth = mW;
RotateBmpInfo->bmiHeader.biPlanes = 1;
RotateBmpInfo->bmiHeader.biBitCount = 24;
RotateBmpInfo->bmiHeader.biCompression = BI_RGB;
RotateBmpInfo->bmiHeader.biSizeImage = mH * bytewidth;
RotateBmpInfo->bmiHeader.biXPelsPerMeter= 0;
RotateBmpInfo->bmiHeader.biYPelsPerMeter= 0;
RotateBmpInfo->bmiHeader.biClrUsed = 0;
RotateBmpInfo->bmiHeader.biClrImportant = 0;
CWnd * m_pWnd ;
m_pWnd = AfxGetApp()->GetMainWnd();
CDC *pDC = m_pWnd->GetDC();
::StretchDIBits(
pDC->GetSafeHdc(),
10,
10,
mW, //显示窗口宽度
mH, //显示窗口高度
0,
0,
mW, //图像宽度
mH, //图像高度
ImageG,
RotateBmpInfo,
DIB_RGB_COLORS,
SRCCOPY);
m_pWnd->ReleaseDC(pDC);
delete [] ImageG ;
delete [] bitBuffer ;
//set_window_attr("border_width",0);
//Hlong lWWindowID,WindowHandle;
//lWWindowID = (Hlong)this->m_hWnd;
//set_check("~father");
//open_window(0,0,mW,mH,lWWindowID,"visible","",&WindowHandle);//close_window(WindowHandle);
//set_check("father");
//disp_obj(mImg,WindowHandle);//disp_image(mImg,WindowHandle);
//----------------7--图像点击事件-------------------------------------------
Hlong Row,Column,Button;
get_mbutton(WindowHandle,&Row,&Column,&Button);
switch(Button)
{
case 1:
::MessageBox(NULL,"Left button !","提示",0);
break;
case 2:
::MessageBox(NULL,"Left button !","提示",0);
break;
case 4:
::MessageBox(NULL,"Left button !","提示",0);
break;
}
- halcon学习基础-图像基本操作
- Halcon学习(三) Halcon基本操作:获取时间与文本操作
- Halcon学习(二) Halcon基本操作:批量读入本地文件夹内的图片
- halcon学习基础
- halcon基本示例阈值操作
- Halcon学习之图像采集
- VC环境下使用HALCON图像处理库的配置与基本操作
- halcon基本,vb,vc连接halcon读取图像,视频
- halcon/c++接口基础 之 HALCON图像变量类
- 频率域滤波基础之一(读数字图像处理学习halcon)
- 频率域滤波基础之二(读数字图像处理学习halcon)
- 频率域滤波基础之三(读数字图像处理学习halcon)
- 频率域滤波基础之四(读数字图像处理学习halcon)
- 频率域滤波基础之五(读数字图像处理学习halcon)
- canvas学习之图像的基本操作
- Halcon学习之文本操作
- 【Halcon教程7】 halcon/c++接口基础 之 HALCON图像变量类
- 第一节:Halcon基本的数据类型及其操作
- MySQL重启 Can't connect to local MySQL server through socket
- Eclipse快捷键大全
- Reading Notes of SICP_01
- 韩顺平_PHP程序员玩转算法公开课(第一季)09_使用栈完成高级计算器(1)_学习笔记_源代码图解_PPT文档整理
- Eclipse集成Python开发环境
- halcon学习基础-图像基本操作
- agent-server自监控启动程序
- Hibernate 连接 orcale(11r2版本)
- Android中使用Post请求
- agent-Client端的dubbo监控内存泄露处理过程
- 精妙SQL语句收集
- VC环境下使用HALCON图像处理库的配置与基本操作
- java中常用到的语句
- MATLAB简易网络爬虫(未加入DFS)