精华内容
下载资源
问答
  • 大恒图像sdk

    2014-01-05 14:09:18
    大恒图像工业相机的sdk开发包,基于MFC编写,案例和sample,用于调试
  • 大恒图像基础知识

    2017-07-17 19:12:30
    共享资料,分享基础知识
  • MFC中实现与外部相机的联接,实时采集图像,元代码对实现步骤做了详细的说明!!
  • 14年大恒图像培训

    2018-04-25 19:52:57
    大恒图像培训文件,机器视觉相关专业可以看看,有关halcon的
  • 大恒摄像头选型介绍和开发基础代码,压缩包中含有: 大恒图像产品迅速查询手册, 水星(Mercury)系列USB2.0应用说明书 水星系列数字摄像机快速开发手册
  • 此例程为14年大恒图像培训3_halcon_structure_and_programming
  • 2017大恒图像,北京网梯科技,凌云图像处理,C++部分试题,
  • 大恒相机MARS-1230-23U3C 通过USB线连电脑 最开始这样 探索 我以为是没安装好包 因为说明文档里这么写的 去搜了一堆离线安装第三方库的方法,其实完全不是那么回事 也完全用不到文档的方法 因为文档里系统和软件...

    环境

    系统win10
    软件PyCharm2021.2.3
    解释器python2.7
    大恒相机MARS-1230-23U3C
    通过USB线连电脑

    例程在官方演示软件安装后的目录里,默认目录C:\Program Files\Daheng Imaging\GalaxySDK

    在这里插入图片描述

    官网下载位置

    在这里插入图片描述

    最开始运行会这样

    ExposureTime.set: is not writeable
    Gain.set: is not writeable
    Getting image failed.
    在这里插入图片描述

    探索

    我以为是没安装好包
    因为说明文档里这么写的
    去搜了一堆离线安装第三方库的方法,其实完全不是那么回事
    也完全用不到文档的方法
    因为文档里系统和软件版本都和我不同
    在这里插入图片描述
    只要双击运行下图的例程就好
    gxpi库文件夹和例程文件在同一个文件夹里就行,如下图
    在这里插入图片描述

    其他的包,其实只要运行一下报错提示缺啥包,搜索下载就行,如下图
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述包都安好后,还是出现这个问题

    在这里插入图片描述

    接下来是重点

    我联系了大恒图像的技术小哥
    他说是因为:
    之前把自动曝光和自动增益都设成continuous了
    那个getting image failed可能是连接太久了,自动断了

    解决方法

    打开这个软件
    Galaxy_Windows_CN_32bits/64bits
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这样就解决了,运行如图
    在这里插入图片描述
    最后还有个细节,把这个相机设置保存,以免下次相机恢复以前的设置。
    在这里插入图片描述
    在这里插入图片描述
    出处见说明文档
    在这里插入图片描述

    最后
    感谢大恒图像技术小哥

    展开全文
  • 大恒图像PPT

    2013-07-10 10:57:44
    大恒图像 官方公司介绍 机器视觉 图像处理
  • MFC项目,大恒图像类封装,Opencv结合使用,外触发和软触发
  • 大恒图像给的HALCON 10 中文学习手册,非常适合初学者学习,相比英文版,节约时间,通俗易懂
  • 一、首先搭建vs环境,这里主要介绍怎么配置大恒图像的水星二代的sdk a) 新建空项目,选择项目->属性->VC++目录->包含目录,添加下列两个inc文件(来源于官网下载的驱动软件的sample里) b) 选择项目-&...

    一、首先搭建vs环境,这里主要介绍怎么配置大恒图像的水星二代的sdk

    a) 新建空项目,选择项目->属性->VC++目录->包含目录,添加下列两个inc文件(来源于官网下载的驱动软件的sample里)

    在这里插入图片描述

    b) 选择项目->属性->VC++目录->库目录,添加下列两个lib文件,注意要写\x64,因为lib文件下有两个版本

    在这里插入图片描述

    c) 选择项目->链接器->输入->附加依赖项,添加
    DxImageProc.lib
    GxIAPI.lib
    GxIAPICPPEx.lib

    在这里插入图片描述
    二、源文件新建一个test.cpp,复制下列代码,注意代码下面有注意事项

    // An highlighted block
    #include "stdlib.h"
    #include <iostream>
    #include <opencv2/opencv.hpp>
    //using namespace cv;
    using namespace std;
    #include <GalaxyIncludes.h>
    int j = 0;
    
    cv::Mat img;
    //用户继承掉线事件处理类
    class CSampleDeviceOfflineEventHandler : public IDeviceOfflineEventHandler
    {
    public:
    	void DoOnDeviceOfflineEvent(void* pUserParam)
    	{
    		cout << "收到设备掉线事件!" << endl;
    	}
    };
    
    //用户继承属性更新事件处理类
    
    class CSampleFeatureEventHandler : public IFeatureEventHandler
    {
    public:
    	void DoOnFeatureEvent(const GxIAPICPP::gxstring&strFeatureName, void* pUserParam)
    	{
    		cout << "收到曝光结束事件!" << endl;
    	}
    };
    
    //用户继承采集事件处理类
    class CSampleCaptureEventHandler : public ICaptureEventHandler
    {
    public:
    	void DoOnImageCaptured(CImageDataPointer&objImageDataPointer, void* pUserParam)
    	{
    		cout << "收到一帧图像!" << endl;
    		cout << "ImageInfo: " << objImageDataPointer->GetStatus() << endl;
    		cout << "ImageInfo: " << objImageDataPointer->GetWidth() << endl;
    		cout << "ImageInfo: " << objImageDataPointer->GetHeight() << endl;
    		cout << "ImageInfo: " << objImageDataPointer->GetPayloadSize() << endl;
    
    		img.create(objImageDataPointer->GetHeight(), objImageDataPointer->GetWidth(), CV_8UC3);
    		void *pRGB24Buffer = NULL;
    		//假设原始数据是BayerRG8图像
    		pRGB24Buffer = objImageDataPointer->ConvertToRGB24(GX_BIT_0_7, GX_RAW2RGB_NEIGHBOUR, true);
    		memcpy(img.data, pRGB24Buffer, (objImageDataPointer->GetHeight()) * (objImageDataPointer->GetWidth()) * 3);
    		cv::flip(img, img, 0);
    		j++;
    		char st[100];
    		sprintf_s(st, 100, "%s%d%s", "D:/桌面/cvt/", j, ".bmp");
    		cv::imwrite(st, img);
    		cv::imshow("sss", img);
    		cv::waitKey(1);
    
    		cout << "帧数:" << objImageDataPointer->GetFrameID() << endl;
    	}
    };
    
    int main(int argc, char* argv[])
    {
    
    	//声明事件回调对象指针
    	IDeviceOfflineEventHandler* pDeviceOfflineEventHandler = NULL;///<掉线事件回调对象
    	IFeatureEventHandler* pFeatureEventHandler = NULL;///<远端设备事件回调对象
    	ICaptureEventHandler* pCaptureEventHandler = NULL;///<采集回调对象
    
    	//初始化
    	IGXFactory::GetInstance().Init();
    
    	for (int i = 0; i < 1; i++)
    	{
    		gxdeviceinfo_vector vectorDeviceInfo;
    		IGXFactory::GetInstance().UpdateDeviceList(1000, vectorDeviceInfo);
    		if (0 == vectorDeviceInfo.size())
    		{
    			cout << "无可用设备!" << endl;
    			break;
    		}
    		//打开第一台设备以及设备下面第一个流
    		CGXDevicePointer ObjDevicePtr = IGXFactory::GetInstance().OpenDeviceBySN(
    			vectorDeviceInfo[0].GetSN(),
    			GX_ACCESS_EXCLUSIVE);
    		CGXStreamPointer ObjStreamPtr = ObjDevicePtr->OpenStream(0);
    		//注册设备掉线事件【目前只有千兆网系列相机支持此事件通知】
    		GX_DEVICE_OFFLINE_CALLBACK_HANDLE hDeviceOffline = NULL;
    		pDeviceOfflineEventHandler = new CSampleDeviceOfflineEventHandler();
    		hDeviceOffline = ObjDevicePtr->RegisterDeviceOfflineCallback(pDeviceOfflineEventHandler, NULL);
    		//获取远端设备属性控制器
    		CGXFeatureControlPointer ObjFeatureControlPtr = ObjDevicePtr->GetRemoteFeatureControl();
    		//注册远端设备事件:曝光结束事件【目前只有千兆网系列相机支持曝光结束事件】
    		//选择事件源
    		ObjFeatureControlPtr->GetEnumFeature("EventSelector")->SetValue("ExposureEnd");
    		//使能事件
    		ObjFeatureControlPtr->GetEnumFeature("EventNotification")->SetValue("On");
    		GX_FEATURE_CALLBACK_HANDLE hFeatureEvent = NULL;
    		pFeatureEventHandler = new CSampleFeatureEventHandler();
    		hFeatureEvent = ObjFeatureControlPtr->RegisterFeatureCallback(
    			"EventExposureEnd",
    			pFeatureEventHandler,
    			NULL);
    		//注册回调采集
    		pCaptureEventHandler = new CSampleCaptureEventHandler();
    		ObjStreamPtr->RegisterCaptureCallback(pCaptureEventHandler, NULL);
    		//发送开采命令
    		ObjStreamPtr->StartGrab();
    		ObjFeatureControlPtr->GetCommandFeature("AcquisitionStart")->Execute();
    		//此时开采成功,控制台打印信息,直到输入任意键继续
    		getchar();
    		//发送停采命令
    		ObjFeatureControlPtr->GetCommandFeature("AcquisitionStop")->Execute();
    		ObjStreamPtr->StopGrab();
    		//注销采集回调
    		ObjStreamPtr->UnregisterCaptureCallback();
    		//注销远端设备事件
    		ObjFeatureControlPtr->UnregisterFeatureCallback(hFeatureEvent);
    		//注销设备掉线事件
    		ObjDevicePtr->UnregisterDeviceOfflineCallback(hDeviceOffline);
    		//释放资源
    		ObjStreamPtr->Close();
    		ObjDevicePtr->Close();
    	}
    	
    
    	//反初始化库
    	IGXFactory::GetInstance().Uninit();
    
    	//销毁事件回调指针
    	if (NULL != pCaptureEventHandler)
    	{
    		delete pCaptureEventHandler;
    		pCaptureEventHandler = NULL;
    	}
    	if (NULL != pDeviceOfflineEventHandler)
    	{
    		delete pDeviceOfflineEventHandler;
    		pDeviceOfflineEventHandler = NULL;
    	}
    	if (NULL != pFeatureEventHandler)
    	{
    		delete pFeatureEventHandler;
    		pFeatureEventHandler = NULL;
    	}
    	return 0;
    
    }
    
    
    

    注意:如果报标识符错误,在对应Gxsmartptr.h头文件添加
    #include “GalaxyException.h”

    展开全文
  • 大恒图像软件开发测试题答案
  • ubunut下用Python 连接大恒图像相机,获取图像信息。 准备工作 1,设备:相机,相机支架(可选)。 2,编程环境 直人正题 去官网下载Python开发包。 http://www.daheng-imaging.com/Software/index.aspx?nodeid=304...

    ubunut下用Python 连接大恒图像相机,获取图像信息。

    准备工作

    1,设备:相机,相机支架(可选)。
    2,编程环境

    直人正题

    去官网下载Python开发包。

    http://www.daheng-imaging.com/Software/index.aspx?nodeid=304

    在这里插入图片描述
    我选择第6个下载。下载的时候也要把第3个也下载,里面有后面要用到的软件。

    安装相机需要的软件。
    进入下载完成的目录,输人 ./Galaxy_camera.run

    ~/Downloads/Galaxy_Linux-x86_Gige-U3_32bits-64bits_1.1.1908.9162$ ./Galaxy_camera.run
    

    安装完成后可以用软件测试自己的相机能否连接。

    IP配置

    连接相机的时候要自己配置IP
    在这里插入图片描述
    点这里进行IP的配置
    在这里插入图片描述
    在这里插入图片描述
    这个是我配的IP,我的电脑是有2个网口,可以同时访问2个相机。

    配置多个相机IP的时候有一个重要的地方要注意了:不能乱配。

    测试连接相机

    进入安装好软件的目录中,找到可运行文件如下图:
    在这里插入图片描述

    可以看到已经连接到一个相机,我们是要连接多个相机。就要光掉一些东西。
    在这里插入图片描述

    关了后就可以访问到多个相机了。
    在这里插入图片描述
    在这里插入图片描述
    然后我们来打开相机看看。
    在这里插入图片描述
    nice。

    配置环境

    在前面我们下载了Python的API,里面有几个文档可以帮助到你很多。
    在这里插入图片描述
    我们要按着里面的来,环境很容易就能配好。
    在这里插入图片描述

    配好环境后就是编代码了。

    import gxipy as gx
    import sys
    import numpy as np
    from PIL import Image
    import cv2
    import math
    
    #
    device_manager = gx.DeviceManager()
    
    # update_all_device_list()
    dev_num,dev_info_list = device_manager.update_all_device_list()
    if dev_num == 0:
        sys.exit(1)
    
    print(dev_num)
    print(dev_info_list)
    # 打开设备
    # 方法一
    # 获取设备基本信息列表
    # str_sn = dev_info_list[0].get("sn")
    # print (str_sn)
    
    # 通过序列号打开设备
    # cam = device_manager.open_device_by_sn(str_sn)
    
    # 方法二
    # 通过用户 ID 打开设备
    # str_user_id = dev_info_list[0].get("user_id")
    # cam = device_manager.open_device_by_user_id(str_user_id)
    # 方法三
    # 通过索引打开设备
    # str_index = dev_info_list[0].get("index")
    # cam = device_manager.open_device_by_index(str_index)
    # 下面为只针对千兆网相机使用的打开方式
    # 方法四
    for i in dev_info_list:
        # 通过 ip 地址打开设备
        str_ip= i.get("ip")
        print(str_ip)
        cam = device_manager.open_device_by_ip(str_ip)
        # 方法五
        # 通过 mac 地址打开设备
        # str_mac = dev_info_list[0].get("mac")
        # print(str_mac)
        # cam = device_manager.open_device_by_mac(str_mac)
    
        # 开始采集
        cam.stream_on()
        # 获取流通道个数
        # 如果 int_channel_num == 1,设备只有一个流通道,列表 data_stream 元素个数为 1
        # 如果 int_channel_num > 1,设备有多个流通道,列表 data_stream 元素个数大于 1
        # 目前千兆网相机、USB3.0、USB2.0 相机均不支持多流通道
        int_channel_num = cam.get_stream_channel_num()
        print(int_channel_num)
    
        # 获取数据
        # num 为采集图片次数
        num = 1
        for i in range(num):
            # 打开第 0 通道数据流
            raw_image = cam.data_stream[0].get_image()
            if raw_image.get_status() == gx.GxFrameStatusList.INCOMPLETE:
                print("incomplete frame")
            # 停止采集
            image = np.array(raw_image)
            print("image",image)
            print(type(raw_image))
            # 从黑白原始图像获取 numpy 数组
            numpy_image = raw_image.get_numpy_array()
            if numpy_image is None:
                continue
            # 之后,用户可根据获取的 numpy_array 显示、保存图像
            print(numpy_image)
    
        # 显示并保存获得的黑白图片
        image = Image.fromarray(numpy_image, 'L')
        image.show()
        image.save("acquisition_mono_image.jpg")
    # 停止采集
    cam.stream_off()
    
    # 关闭设备
    cam.close_device()
    print("over")
    

    在这里插入图片描述
    好了,OK了。

    展开全文
  • 大恒图像面经(算法研发工程…

    千次阅读 2016-05-23 10:34:56
    原文地址:大恒图像面经(算法研发工程师)作者:yigerenjiandan 2012年8月30日下午3:00来到大恒图像公司,公司职员给了一份笔试,紧接着就是面试。其中最搞笑的是我正在做笔试题,他们居然在单位里做第八套广播体操...
    2012年8月30日下午3:00来到大恒图像公司,公司职员给了一份笔试,紧接着就是面试。其中最搞笑的是我正在做笔试题,他们居然在单位里做第八套广播体操,不过还是要赞一个的,感觉挺不错的。下面就跟大家分享一下大恒图像的笔试题。我面的是算法工程师,笔试题都是很基本的题,可是我答的很烂,主要是因为准备补充分吧
    1、C语言题,主要考察宏替换、变量的作用域以及逻辑运算的,挺简单的,不过还是有很多陷阱的;
    2、用C++编写一程序,判断操作系统是16位还是32位;
    1. <span style="font-family:Arial;color:#333333;">16位的系统下,  
    2. int 65536;  
    3. cout << i; // 输出0;  
    4. int 65535;  
    5. cout << i; // 输出-1;  
    6.   
    7. 32位的系统下,  
    8. int 65536;  
    9. cout << i; // 输出65536;  
    10. int 65535;  
    11. cout << i; // 输出65535;</span>  
    3、两个循环链变A和B,头指针分别是pHeadA,pHeadB,删除链表中相同的元素data;
    有双向循环链表结点定义为:
    struct node
    { int data;
    struct node *front,*next;
    };
    有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除
    BOOL DeteleNode(Node *pHeader, DataType Value)
    {
    if (pHeader == NULL) return;
    BOOL bRet = FALSE;
    Node *pNode = pHead;
    while (pNode != NULL)
    {
    if (pNode->data == Value)
    {
    if (pNode->front == NULL)
    {
    pHeader = pNode->next;
    pHeader->front = NULL;
    }
    else
    {
    if (pNode->next != NULL)
    {
    pNode->next->front = pNode->front;
    }
    pNode->front->next = pNode->next;
    }
    Node *pNextNode = pNode->next;
    delete pNode;
    pNode = pNextNode;
    bRet = TRUE;
    //不要break或return, 删除所有
    }
    else
    {
    pNode = pNode->next;
    }
    }
    return bRet;
    }
    void DE(Node *pHeadA, Node *pHeadB)
    {
    if (pHeadA == NULL || pHeadB == NULL)
    {
    return;
    }
    Node *pNode = pHeadA;
    while (pNode != NULL)
    {
    if (DeteleNode(pHeadB, pNode->data))
    {
    if (pNode->front == NULL)
    {
    pHeadA = pNode->next;
    pHeadA->front = NULL;
    }
    else
    {
    pNode->front->next = pNode->next;
    if (pNode->next != NULL)
    {
    pNode->next->front = pNode->front;
    }
    }
    Node *pNextNode = pNode->next;
    delete pNode;
    pNode = pNextNode;
    }
    else
    {
    pNode = pNode->next;
    }
    }
    }
    4、给你一幅图像的指针img、图像的长和宽heigth、width,以及灰度直方图指针hist
    要有C语言用
    
    for(i=0;i<256;i++)
     {
      hist[i]=0;
     }
    
     for(i=0;i<Height;i++)
      for(j=0;j<Width;j++)
      {
         img=(unsigned char*)img+Width*i+j;
         hist[*img]++;
      }
    5、图像的滤波、卷积、平滑以及图像边缘化的区别和联系
    
    图像滤波,即在尽量保留图像细节特征的条件下对目标像的噪声进行抑制;
    
    图像卷积,是图像变得光滑,降低图像中的噪声
    
    图像平滑,是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量的图像处理方法。
    
    图像边缘化,
    
     
         
    6.修改程序的bug,并对程序进行优化,主要bug是图像指针的问题,对符合条件的像素点进行处理,主要是利用两个循环,对像素的索引不对,以及表达式不对;
    
    
    7.题目没有看懂,就是关于相机和图像高亮部分的处理;
    
    笔试完直接就面试,估计被BS的,至今没戏,主要是笔试做的太烂了!最重要的是忘了把试卷照下来,这是个遗憾。
    


    展开全文
  • 剑指offer:大恒图像

    2015-01-31 10:12:00
    大恒图像:成立于1991年,专注于视觉部件、视觉系统及互联网医疗相关产品研发、生产和营销的高科技企业。 旗下产品信息: 1.图像采集卡 摄像机等输入的模拟图像信号经过A/D转换,或将数字摄像机的输出信号,通过...
  • 大恒图像关于机器视觉应用的讲解,机器视觉工业检测应用_大恒图像
  • 机器视觉工业检测应用 大恒图像 .
  • 关于halcon软件使用的培训,附有图像处理相关的blob分析、形态学处理及匹配等相关内容。
  • 大恒usb相机驱动

    2019-01-14 10:15:40
    大恒usb相机的驱动,亲测可用,如果需要,还有许多测试代码等
  • 配置好相关文件 可以在VS里直接运行 里面还用到了opencv的一些函数
  • 大恒相机SDK软件下载

    2020-10-05 23:24:09
    大恒相机的软件,把该软件进行安装,在安装目录就可以找到大恒相机的SDK了。如果没有积分的可以在我任一篇文章下评论或私信都可。
  • 大恒数字图像软件开发说明书.pdf
  • 大恒系列机器视觉培训教程——halcon,为大恒图像内部的培训pdf教程,学习合理系统的图像处理思路!
  • 大恒图像图像采集卡介绍,模拟视频相关知识,图像采集卡相关知识,主板总线介绍
  • 大恒图像二次开发包

    2007-04-28 20:01:34
    免责;代码来自万维网,与本人无关 仅供学习之用,请在下载24小时内删除。
  • 2011年1月7日大恒图像面试总结

    千次阅读 2011-01-07 15:43:00
    2011年1月7日大恒图像面试总结
  • 大恒双相机开发-C#.zip

    2020-04-07 11:43:13
    界面做了优化,采用多线程技术,做了显示帧率的显示与采集帧率的显示,内有 帧率计算方法,时间计算方法,并行,多线程,绘图方法,托管与非托管内存转换技术等
  • 运行环境: Ubuntu18.04, 大恒相机python库,大恒相机linux驱动,python2.7 代码: import gxipy as gx from PIL import Image import datetime import cv2 """ Author:NoamaNelson Date:2019-11-21 Discription:...
  • MFC打开大恒相机

    2017-11-29 16:44:05
    VS2013打开大恒相机,有开始采集和停止采集,打开设备和关闭设备四个控制按钮,获取的相机图像源通过Opencv 显示到mfc的界面上,方便对接下来的获取的图片再进行下一步处理;注意事项:1. 请先安装大恒相机的驱动,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 756
精华内容 302
关键字:

大恒图像

友情链接: 8323.zip