精华内容
下载资源
问答
  • 图像采集

    千次阅读 2019-02-10 09:59:11
    图像采集装置 1.采集设备 采集数字图像,采集装置中一般有两种器件: 1.传感器:对某个电磁能量谱波段(X射线,红外线,紫外线,可见光)敏感的物理器件,并且可以把接受的辐射转换成与之成正比的电信号. 2.数字化器件:能将...

    一.图像采集装置

    1.采集设备

    采集数字图像,采集装置中一般有两种器件:
    1.传感器:对某个电磁能量谱波段(X射线,红外线,紫外线,可见光)敏感的物理器件,并且可以把接受的辐射转换成与之成正比的电信号.
    2.数字化器件:能将传感器传过来的但信号转化为离散的数字形式,从而输入计算机.
    例如:常见的X光片是信号直接记录在胶片上的形式,若想要在图像处理中作为输入,那么还需要转化为离散的量.

    2.常用采集装备-近年来广泛应用的主要是基于对光子敏感的’固态阵’的器件

    • 电荷耦合器件(CCD):

    CCD摄像机其中的固态阵是由称为感光基元(photosite)的离散硅成像元素构成的.这样的感光基元能产生与所接收的输入光强成正比的输出电压.
    1.固态阵的组织形式:
    ①线性扫描器:只包含一行感光基元,它靠场景和检测器之间的相对运动来获得2D图像.
    ②平面扫描器:传感器由排成方阵的感光基元组成,可以直接得到2D图像.
    2.特点:固态平面传感器的特点是具有非常快的快门速度(可以达到10-4s),可以将许多运动定格下来.

    • 互补性金属氧化物半导体(CMOS):

    CMOS摄像机的传感器主要包括:传感器核心,模/数转换器,输出寄存器,控制寄存器,增益放大器等.
    1.传感器核心中的感光像元电路的种类:
    ①光敏二极管型无源像素结构:无源像素结构由一个反向偏置的光敏二极管和一个开关管构成,当开关管开启时,光敏二极管与垂直的列线连通,位于列线末端的放大器读出列线电压.
    在这里插入图片描述
    ②光敏二极管型有源像素结构:有源像素结构在像素单元上加入了有源放大器.
    在这里插入图片描述
    ③光栅型有源像素结构:信号电荷在光栅下积分,输出前,将扩散点复位,然后改变光栅脉冲,收集光栅下的信号电荷转移到扩散点,复位电压水平与信号电压水平之差就是输出信号.
    在这里插入图片描述

    • 电荷注射器件(CID)

    在CID摄像机的传感器芯片中,有一个和图像矩阵对应的电极矩阵,在每一个像素未知有两个隔离/绝缘的能产生电位阱的电极.其中一个电极与同一行的所有像素的对应电极连通,而另一个电极与同一列的所有像素对应的电极连通.如果访问像素,可以通过访问行列来实现.
    1.CID三种工作模式
    ①积分模式:此时两个电极的电压均为正,光电子将会累加.如果所有行和列均保持正电压,则整个芯片将给出一副完整的图像.
    ②非消除性模式:此时两个电极的电压一个为正一个为负,为负的点击累加的光电子将会迁移到为正的电极下,通过迁移的脉冲,使读的时候也不会消除.
    ③消除性模式:两个电极电压均为负.累加的电子会流溢,并在电路中激发脉冲,但是这个过程将迁移来的光电子排出电位阱,所以可以用来清零.

    • 优缺点

    CMOS将整个系统集成在一块芯片上,降低了功耗,节省了空间,总体成本也更低,但是CMOS摄像机的噪声水平比CCD摄像机约高一个量级.CID摄像器件对光的敏感度要低很多.但是可以随机访问,和不会产生图像浮散等问题.
    在这里插入图片描述
    在这里插入图片描述

    3.基本性能指标-对图像采集装置需要考虑的指标

    ①线性响应:指输入物理信号的强度与输出响应信号的强度之间的关系是否线性.
    ②灵敏度:绝对灵敏度可用所能检测到的最小光子个数表示,相对灵敏度可用能使输出发生一个级别的变化所需的光子个数表示.
    ③信噪比:指所采集的图像中有用信号与无用干扰的(能量或强度)比值.
    ④阴影(不均匀度):指输入物理信号为常数而输出的数字形式不为常数的现象.
    ⑤快门速度:对应每次采集拍摄所需时间.
    ⑥读取速度:指信号数据从敏感单元读取信号(传输)的速率.
    ⑦空间分辨率:根据传感器单元的大小和排布,采集到的图像的像素点个数.
    ⑧幅度分辨率:根据感光元件的灵敏度和设置的各级值区间,对于光源变化大小的可感受度.

    展开全文
  • 网络摄像头图像采集网络摄像头图像采集网络摄像头图像采集网络摄像头图像采集网络摄像头图像采集
  • 图像采集驱动

    2018-10-09 21:02:00
    图像数据采集,包括数字图像采集,滤波和后期处理, 然后
  • 图像采集系统设计图像采集系统设计图像采集系统设计
  • LABVIEW图像采集

    2018-11-21 21:00:48
    这是一个简单的调用摄像头,打开LABVIEW程序框图进行图像采集
  • 红外图像采集

    2018-10-07 21:04:31
    将红外摄像头与之相连接,启动后用于连接红外摄像头进行红外图像采集
  • 图像采集上位机

    2018-03-09 17:03:22
    DemokTool图像采集上位机,可以很好的调试摄像头数据。
  • 如何开启图像采集线程与关闭该线程,步骤如下: 一、按下采集按钮,开始创建一个图像采集线程 // ch:按下开始采集按钮 | en:Click Start button void CBasicDemoDlg::OnBnClickedStartGrabbingButton() { if ...

    如何开启图像采集线程与关闭该线程,步骤如下:

    一、按下采集按钮,开始创建一个图像采集线程

    // ch:按下开始采集按钮 | en:Click Start button
    void CBasicDemoDlg::OnBnClickedStartGrabbingButton()
    {
        if (FALSE == m_bOpenDevice || TRUE == m_bStartGrabbing || NULL == m_pcMyCamera)
        {
            return;
        }
    
        memset(&m_stImageInfo, 0, sizeof(MV_FRAME_OUT_INFO_EX));
        m_bThreadState = TRUE;
        unsigned int nThreadID = 0;
        m_hGrabThread = (void*)_beginthreadex( NULL , 0 , GrabThread , this, 0 , &nThreadID );
        if (NULL == m_hGrabThread)
        {
            m_bThreadState = FALSE;
            ShowErrorMsg(TEXT("Create thread fail"), 0);
            return;
        }
    
        int nRet = m_pcMyCamera->StartGrabbing();
        if (MV_OK != nRet)
        {
            m_bThreadState = FALSE;
            ShowErrorMsg(TEXT("Start grabbing fail"), nRet);
            return;
        }
        m_bStartGrabbing = TRUE;
        EnableControls(TRUE);
    
        return;
    }

    在按下采集按钮事件中,使用_beginthreadex开启一个图像采集线程。

    同时定义成员函数,保存线程的状态,线程的句柄

    
        void*           m_hGrabThread;              // ch:取流线程句柄 | en:Grab thread handle
        BOOL            m_bThreadState;          //线程状态

    二、 采集过程

    具体的线程执行函数

    // ch:取流线程 | en:Grabbing thread
    unsigned int __stdcall GrabThread(void* pUser)
    {
        if (NULL == pUser)
        {
            return -1;
        }
    
        CBasicDemoDlg* pCam = (CBasicDemoDlg*)pUser;//MFC窗体
    
        pCam->GrabThreadProcess();
    
        return 0;
    }

    具体的图像采集函数

    int CBasicDemoDlg::GrabThreadProcess()
    {
        // ch:从相机中获取一帧图像大小 | en:Get size of one frame from camera
        MVCC_INTVALUE_EX stIntValue = {0};
    
        int nRet = m_pcMyCamera->GetIntValue("PayloadSize", &stIntValue);
        if (nRet != MV_OK)
        {
            ShowErrorMsg(TEXT("failed in get PayloadSize"), nRet);
            return nRet;
        }
        unsigned int nDataSize = (unsigned int)stIntValue.nCurValue;
    
        if (NULL == m_pGrabBuf || nDataSize > m_nGrabBufSize)
        {
            if (m_pGrabBuf)
            {
                free(m_pGrabBuf);
                m_pGrabBuf = NULL;
            }
    
            m_pGrabBuf = (unsigned char *)malloc(sizeof(unsigned char) * nDataSize);
            if (m_pGrabBuf == NULL)
            {
                return 0;
            }
            m_nGrabBufSize = nDataSize;
        }
    
        MV_FRAME_OUT_INFO_EX stImageInfo = {0};
        MV_DISPLAY_FRAME_INFO stDisplayInfo = {0};
    
        while(m_bThreadState)
        {
            EnterCriticalSection(&m_hSaveImageMux);
            nRet = m_pcMyCamera->GetOneFrameTimeout(m_pGrabBuf, m_nGrabBufSize, &stImageInfo, 1000);
            if (nRet == MV_OK)
            {
                memcpy(&m_stImageInfo, &stImageInfo, sizeof(MV_FRAME_OUT_INFO_EX));
            }
            LeaveCriticalSection(&m_hSaveImageMux);
    
            if (nRet == MV_OK)
            {
                if(RemoveCustomPixelFormats(stImageInfo.enPixelType))
                {
                    continue;
                }
                stDisplayInfo.hWnd = m_hwndDisplay;
                stDisplayInfo.pData = m_pGrabBuf;
                stDisplayInfo.nDataLen = stImageInfo.nFrameLen;
                stDisplayInfo.nWidth = stImageInfo.nWidth;
                stDisplayInfo.nHeight = stImageInfo.nHeight;
                stDisplayInfo.enPixelType = stImageInfo.enPixelType;
    
                m_pcMyCamera->DisplayOneFrame(&stDisplayInfo);
            }
            else
            {
                if (MV_TRIGGER_MODE_ON ==  m_nTriggerMode)
                {
                    Sleep(5);
                }
            }
        }
    
        return MV_OK;
    }

     我们可以看到,主要是通过一个While循环判断线程的状态,来不断的通过相机API图像信息stDisplayInfo

    三、 结束采集

    // ch:按下结束采集按钮 | en:Click Stop button
    void CBasicDemoDlg::OnBnClickedStopGrabbingButton()
    {
        if (FALSE == m_bOpenDevice || FALSE == m_bStartGrabbing || NULL == m_pcMyCamera)
        {
            return;
        }
    
        m_bThreadState = FALSE;
        if (m_hGrabThread)
        {
            WaitForSingleObject(m_hGrabThread, INFINITE);
            CloseHandle(m_hGrabThread);
            m_hGrabThread = NULL;
        }
    
        int nRet = m_pcMyCamera->StopGrabbing();
        if (MV_OK != nRet)
        {
            ShowErrorMsg(TEXT("Stop grabbing fail"), nRet);
            return;
        }
        m_bStartGrabbing = FALSE;
        EnableControls(TRUE);
    
        return;
    }

    我们可以看到,先将线程状态置为False,再等待线程执行完成,同时将线程句柄置为NULL,调用相机API关闭采集。

    具体代码见海康的demo。

    四、总结

    我们可以以此类推,其他的应用场景。需要开启线程,等待线程结束都可以使用这种方式。比如串口通信,网口通信等

    展开全文
  • FPGA图像采集

    2014-05-28 20:47:47
    FPGA图像采集论文
  • 图像采集VI程序

    2018-04-16 17:34:41
    图像采集VI程序,带采集时间计算和采集速率计算功能。
  • FPGA控制实现图像系统视频图像采集,希望对大家优速帮助
  • 易语言视频图像采集源码,视频图像采集,删除场景,填充设备场景,创建场景,发送媒体指令,取短文件名,置父窗口,释放鼠标,俘获鼠标
  • 许多数码达人对图像采集卡这个词并不陌生,众所周知,图像采集卡充当着链接摄像机与计算机的桥梁,将采集到的信息输送给电脑。那么摄像作为必不可少的部分,选购图像采集卡时要注意哪些方面呢?  下面为您简单介绍...
  • 视频图像采集

    2014-05-09 08:45:17
    视频中单个帧的图像采集的面性能参数采集方法
  • visual C++ 基于MFC和OpenCV 的图像处理 摄像头图像采集程序 visual C++ 基于MFC和OpenCV 的图像处理 摄像头图像采集程序
  • 图像采集 光源

    2020-06-05 22:29:55
    一个正常的机器视觉系统应该包括图像采集系统(光源、相机、镜头等部分)、图像处理系统(图像分析、图像特征提取等)以及机械执行单元。 图像采集系统: (1) 光源:用于给采集物体进行大光,凸显物体本身。包括同轴光、...

    机器视觉

    机器视觉是使得机器具有与人一样的视觉,实现检测、测量以及判别等功能。一个正常的机器视觉系统应该包括图像采集系统(光源、相机、镜头等部分)、图像处理系统(图像分析、图像特征提取等)以及机械执行单元。

    图像采集系统

    (1) 光源:用于给采集物体进行大光,凸显物体本身。包括同轴光、环形光以及其他光源。
    (2) 相机:工业相机种类较多,主要实现对图像的采集,其内部包括图像采集卡以及CCD或者CMOS芯片等,其中工业使用的CCD相机较多,具有高灵敏度以及低噪声。
    (3) 镜头:镜头与相机配套使用,当然有的相机也会与镜头做成一体。

    图像处理系统

    图像处理系统主要是指利用采集到的图像,进行提取有用信息的过程。该过程包括图像处理、模式识别等知识,也是机器视觉系统中的核心本质内容,是机器的眼睛。

    机械执行单元

    该部分一般由PLC、机械手等组成,属于运动执行部分,实现根据图像处理结果进行实际运动的执行。

    机器视觉的用途

    机器视觉具有广泛的用途,主要应用包括图像检测、视觉定位、物体测量以及物体识别等。通俗讲,就是给机器装上眼睛,比如想进行物体抓取,那首先应该利用视觉获得物体的世界坐标;如果想进行尺寸测量,可以利用视觉获取目标区域以及目标的分离界限。

    展开全文
  • 图像采集

    2012-08-15 15:33:18
    图像采集卡简介
  • 图像采集软件

    2012-05-29 11:29:18
    图像采集软件,用于摄像头采集图像,非常使用,附加代码
  • 包含了一些常见采集卡的驱动、图像采集软件、开发例程 地址:下载链接

    包含了一些常见采集卡的驱动、图像采集软件、开发例程
    地址:下载链接
    在这里插入图片描述

    展开全文
  • 基于近红外图像质量评价的静脉图像采集系统
  • C#图像采集

    2014-12-18 10:08:48
    图像采集,利用VS2008的编程环境进行功能编辑,通过摄像头传输来的视频,通过抓拍得到图片
  • opencv摄像头图像采集

    2016-04-11 11:34:22
    基于opencv的摄像头图像采集程序;可以实时采集图像并保存到本地;可以直接运行;
  • FPGA图像采集处理系统
  • 利用光伏转换与控制技术,将太阳能光伏运用于图像采集上,开发出一套基于太阳能光伏电源的图像采集系统。前级在硬件上采用BUCK型DC-DC电路,软件上提出了固定电压法结合双向扰动观察法的最大功率点跟踪算法,后级...
  • 图像采集是数字化图像处理的第一步, 因此开发图像采集平台是任何视觉系统开发 的基础。介绍了DH2CG300 图像采集卡的工作原理、流程、系统函数库, 在此基础上讨论了一种图 像采集平台的开发步骤, 包括图像采集卡参数...
  • 该设计是在深入研究传统的图像采集模块的基础上,针对传统的PCI图像采集卡的弊端,设计适用于便携式嵌入式系统的图像采集模块。该系统实现了图像原始数据采集及缓存,保证了图像数据的连续和完整性,具有体积小、...
  • 图像采集处理

    2014-04-03 11:18:00
    labview图像采集处理,简单的snap程序。拍照读取图片并显示,并且通过按钮不同的状态显示不同的图片

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,543
精华内容 5,417
关键字:

图像采集