智能车制作

标题: VC++上位机程序的图像还原问题 [打印本页]

作者: liaojiji    时间: 2009-4-13 16:24
标题: VC++上位机程序的图像还原问题
本帖最后由 liaojiji 于 2009-4-13 16:28 编辑

请问哪位知道VC++编写的上位机程序的图像还原的方法,就是把传感器采集的赛道在计算机上还原成图像。
能提供个算法原理,编程思路就行,有程序代码就更好咯!!
急求~~
作者: sunny1988    时间: 2009-4-16 21:43
用MATLAB或者LABVIEW更方便
作者: XYH    时间: 2010-3-11 21:31
你现在知道如何用C++还原图像的话,请告我,我也很想知道
xiao_yonghui@126.com
不胜感激
作者: 96107015    时间: 2010-3-12 10:21
本帖最后由 96107015 于 2010-3-12 10:24 编辑

用VC6.0的话,不太好做。如果是VC2005的话,有个CImage类,很好用。
例如:
你从下位机上发过来一个二维数组 img[128[[176]假设你采集到的像素是128*176的
下面就是对这个二维数组的处理了
1,建立一个MFC的对话框应用程序(为方便叙述,假设工程名字为img),在资源视图中删除对话框上的控件。
2,在stdafx.h文件的最后加上#include<atlimage.h>
3,转到类视图,在类CimgDlg中添加变量 CImage img和 img[128][176] (这个变量中储存你上位机接受到的图像数据,这里假设你的图像是256阶灰度数据,即你的摄像头是灰度的,值从0~255,0是黑色 255是白色)
4,在类CimgDlg中添加消息响应函数OnTimer(UINT_PTR nIDEvent)
5,在CfcarDlg::OnInitDialog()函数中添加初始化代码

img.Create(176,128,8);
img.SetColorTable(0,256,colortab);
SetTimer(1,40,NULL);

6,在OnTimer(UINT_PTR nIDEvent)函数中加入如下代码


        BYTE *buf;
        for(int y=0;y<img.GetHeight();y++)
        {
                buf=(BYTE*)img.GetPixelAddress(0,y);
                for(int x=0;x<img.GetWidth();x++)
                {
                        buf[x]=img[y][x];
                }
        }
                CDC*pDC=this->GetDC();
                img.BitBlt(*pDC,0,0);
                ReleaseDC(pDC);

7,编译运行就可以了

补充:怎样把数据传到上位机,我现在也不知道,希望能帮到你!!
作者: fbhsy    时间: 2010-3-13 10:38
谢谢楼上的
作者: nigel1946    时间: 2010-3-25 14:49

作者: zou317    时间: 2010-3-27 22:13

作者: lansedeyueliang    时间: 2010-3-31 20:48
谢谢
作者: aleko    时间: 2010-5-1 03:02

作者: wkdzdh    时间: 2012-5-1 15:33
我就是用VC++写的上位机,思路是先把收到的数据保存在一个字符串里,然后把这个字符串的内容根据所采集图像的行数和列数存放在数组里,再根据你所确定的阀值去Image控件中画图大致就是这样

作者: 飞思卡尔。。    时间: 2012-12-31 16:10
:D:D




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2