工业相机设计图像处理和方案实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工业相机设计图像处理和方案实现相关的知识,希望对你有一定的参考价值。
最近在学习工业相机相关知识,需求是这样的:800 X 600的图像大小、40FPS、灰度图、BMP输出格式、20倍定焦镜头。由于刚接触这个,有许多不懂的,现向各位大神请教几个问题。1、我选用的单色SENSOR,输出灰度图需要做图像较正吗? 2、我采用的定焦镜头拍运动的物体,需要做3A算法吗? 3、ISP芯片+SENSOR的方案和FPGA + SENSOR的方案,那种更靠谱。还请各位大神不吝赐教,非常感谢!!
具体看图像处理的要求和想实现什么样的方案,详情可通过官方微信平台(微信公众号:RegemMarr Regem Marr 研祥金码),您可以第一时间掌握公司最新动态及各种行业资讯,也可以即时互动。同时您可以在线报修、查询网点、保修期等,快速获得专业服务。经常会有一些机器视觉工程师认为USB接口的工业相机会造成丢帧现象。一般而言,工业相机丢帧与工业相机所采用的传输接口是没有关系的,无论是USB,还是1394、GigE、或者是CameraLink。设计不良的驱动程序或工业相机硬件才是造成丢帧的真正原因:设计不良的工业相机之所以会发生丢帧的现象,其实就是资料通道的堵塞,无法及时处理,所以新的图像进来时,前一张可能被迫丢弃,或是新的图像被迫丢弃。要解决这问题,需要设计者针对驱动程序与工业相机硬件资料传输的每个环节进行精密的设计。想了解更多关于工业相机的内容,可通过官方网站(www.evocjm.com),可在线获取相关技术文件、工具、驱动及常见问答库,即时享受专业官方服务。您还可以通过在线沟通工具,直接发起对话申请,或提交留言,我们的客服人员将第一时间与您取得联系。 参考技术A 这个需要看客户的具体需求,每个客户所要求的是不一样的。工业相机会提供一些开发包,支持很多种语言的。我是做技术支持的,共同学习埃望采纳,有关工业相机的问题可以随时来问我。追问
谢谢大虾的回复!我现在打算用SONY IMX290 + HISI 3516AV200来做方案。我最担心的就是图像的曝光和3A算法还有畸变校正能不能符合最后图像识别的要求
参考技术B 嗯你是男是女你是开始上课看 参考技术C 是否可以接受别人意见建议?你是怎么回事!你在干嘛我也睡不着我不是滋味!你是谁呀、这种事情是因为他们没有什么事情可以做什么地方的经济呢!你的孩子都不一样吧!你在一起了么!你是谁了!你在干嘛呀!你们要吃的什么地方好玩好睡不好,不能再没有你想象不成事就是说不出口、不能再去看看吧、这么好了没有时间的推移和一些朋友都不可能成为我朋友这里是我们生活水平和好,这样可以理解一下自己是一个人大华工业相机图像采集Python代码实现
1 #!/usr/bin/env python 2 # coding: utf-8 3 ‘‘‘ 4 Created on 2017-10-25 5 6 @author: 7 ‘‘‘ 8 9 from ImageConvert import * 10 from MVSDK import * 11 import time 12 import numpy 13 import gc 14 from PIL import Image 15 from queue import Queue 16 # from Helper import MessageBox 17 18 19 class Camera: 20 21 def __init__(self): 22 23 self.g_cameraStatusUserInfo = b"statusInfo" 24 self.g_Image_Grabbing_Timer = 10 # unit : s 25 self.g_isStop = 0 26 self.connectCallBackFuncEx = connectCallBackEx(self.deviceLinkNotify) 27 self.frameCallbackFuncEx = callbackFuncEx(self.onGetFrameEx) 28 self.dev = None 29 self.qimage = Queue(maxsize=0) 30 self.userInfo = b"test" 31 # self.messagebox = MessageBox() 32 33 def onGetFrameEx(self, frame, userInfo): 34 """ 取流回调函数Ex """ 35 if (self.g_isStop == 1): 36 return 37 38 nRet = frame.contents.valid(frame) 39 if (nRet != 0): 40 print("frame is invalid!") 41 # 释放驱动图像缓存资源 42 frame.contents.release(frame) 43 return 44 45 print("BlockId = {}".format(str(frame.contents.getBlockId(frame)))) 46 47 #此处客户应用程序应将图像拷贝出使用 48 # 给转码所需的参数赋值 49 imageParams = IMGCNV_SOpenParam() 50 imageParams.dataSize = frame.contents.getImageSize(frame) 51 imageParams.height = frame.contents.getImageHeight(frame) 52 imageParams.width = frame.contents.getImageWidth(frame) 53 imageParams.paddingX = frame.contents.getImagePaddingX(frame) 54 imageParams.paddingY = frame.contents.getImagePaddingY(frame) 55 imageParams.pixelForamt = frame.contents.getImagePixelFormat(frame) 56 57 # 将裸数据图像拷出 58 imageBuff = frame.contents.getImage(frame) 59 userBuff = c_buffer(b‘