ISP图像调优(支持工业相机)
文章目录
- 关于一些音视频编解码的ISP相关的
- 关于线阵相机相关的
- *海康系列
- *度申系列
- 关于面阵相机相关的
关于一些音视频编解码的ISP相关的
目前比较熟悉海思系列的主控ISP,如果有这块的疑问,可以留言,给出一些想法,看看能否突破下, 只涉及相关主控ISP API调用和思路,不涉及到OpenCV或DSP图像算法的(因为我也不太熟悉)
关于线阵相机相关的
这块刚调完海康的线阵相机,效果还是不错的,仅提供相关的思路和API接口相关的,结构设计,补光设计, 装配等可讨论互相学习,如下为分辨率2048*1024的调试效果(某康型号MV-CL022-40GC, 2K网口线阵,彩色):
原始数据bmp比较大,有18M, 无法上传,截图如下:
*海康系列
链接: 海康线阵相机调试指导
*度申系列
相机参数:
代码块:
#include "rob_mvs_feature_tree.h"/***属性树备注:note部分依工具为主,xls中确认未更新。**/
FEATURE_TREE_S ft_info[FEATURE_TREE_OTHERS] =
{{/*Feature*/"Device Control","设备控制",/* 名称 数据类型 访问模式 描述*/{{ 0, "DeviceType", "IEnumeration", "设备类型"},{ 1, "DeviceScanType", "IEnumeration", "设备sensor的扫描方式,表明是线阵相机还是面阵相机"},{ 2, "DeviceVendorName", "IString", "设备的制造商名称"},{ 3, "DeviceModelName", "IString", "设备型号"},{ 4, "DeviceManufacturerInfo", "Istring", "设备的制造商信息"},{ 5, "DeviceVersion", "IString ", "设备版本"},{ 6, "DeviceFirmwareVersion", "IString", "固件版本"},{ 7,"DeviceSerialNumber", "IString", "设备序列号"},{ 8, "DeviceID", "Istring", "设备ID"},{ 9, "DeviceUserID", "IString", "用户自定义的名称"},{ 10, "DeviceUptime", "IInteger", "设备运行时间"},{ 11, "BoardDeviceType", "IInteger", "设备类型"},{ 12, "DeviceConnectionSelector", "IInteger", "设备连接选择"},{ 13, "DeviceConnectionSpeed", "IInteger", "设备连接速度"},{ 14, "DeviceConnectionStatus", "IEnumeration", "设备连接状态"},{ 15, "DeviceLinkSelector", "IInteger", "设备连接选择"},{ 16, "DeviceLinkSpeed", "IInteger", "设备连接速度"},{ 17, "DeviceLinkConnectionCount", "IInteger", "设备连接数量"},{ 18, "DeviceLinkHeartbeatMode", "IEnumeration", "是否需要心跳"},{ 19, "DeviceLinkHeartbeatTimeout", "IInteger", "心跳超时时间"},{ 20, "DeviceStreamChannelCount", "IInteger", "流通道数量"},{ 21, "DeviceStreamChannelSelector", "IInteger", "流通道选择"},{ 22, "DeviceStreamChannelType", "IEnumeration", "流通道类型"},{ 23, "DeviceStreamChannelLink", "IInteger", "流通道连接数量"},{ 24, "DeviceStreamChannelEndianness","IEnumeration", "图像数据的字节序"},{ 25, "DeviceStreamChannelPacketSize","IInteger", "接收端流数据的包大小"},{ 26, "DeviceEventChannelCount", "IInteger", "设备支持的"},{ 27, "DeviceCharacterSet", "IEnumeration", "设备寄存器中使用的字符集"},{ 28, "DeviceReset", "ICommand", "重启设备"},{ 29, "DeviceTemperatureSelector", "IEnumeration", "选择某个部件温度测量"},{ 30, "DeviceTemperature", "IFloat", "选中的设备部件温度"},{ 31, "FindMe", "ICommand", "发现当前设备"},{ 32, "DeviceMaxThroughput", "IInteger", "设备最大吞吐量(带宽"},}},{"ImageFormatControl","图像格式控制", /**/{{ 0, "WidthMax", "IInteger", "图像最大宽度,binning之后的数据"},{ 1, "HeightMax", "IInteger", "图像最大高度,binning之后的数据"},{ 2, "RegionSelector", "IEnumeration", "ROI选择器"},{ 3, "RegionDestination", "IEnumeration", "该ROI对应的码流"},{ 4, "Width", "IInteger", "ROI的宽"},{ 5, "Height", "IInteger", "ROI的高"},{ 6, "OffsetX", "IInteger", "ROI的水平方向偏移量"},{ 7, "OffsetY", "IInteger", "ROI的竖直方向偏移量"},{ 8, "ReverseX", "IBoolean", "是否需要水平翻转"},{ 9, "ReverseY", "IBoolean", "是否需要竖直翻转"},{10, "ReverseScanDirection", "IBoolean", "转换扫描方向"},{11, "PixelFormat", "IEnumeration", "图像像素格式,不同型号的相机,支持的像素格式有差异,以实际的为准"},{12, "PixelSize", "IEnumeration", "一个像素包含的比特数"},{13, "ImageCompressionMode", "IEnumeration", "图像压缩模式"},{14, "ImageCompressionQuality", "IInteger", "图像压缩质量"},{15, "TestPatternGeneratorSelector", "IEnumeration", "测试图像生成器选择"},{16, "TestPattern[TestPatternGeneratorSelector]", "IEnumeration", "测试图像选择"},{17, "BinningSelector ", "IEnumeration", "像素合并选择"},{18, "BinningHorizontal[BinningSelector]", "IEnumeration", "水平像素合并"},{19, "BinningVertical[BinningSelector] ", "IEnumeration", "垂直像素合并"},{20, "DecimationHorizontal", "IEnumeration", "水平像素采样"},{21, "DecimationVertical", "IEnumeration", "垂直像素采样"},{22, "Deinterlacing", "IEnumeration", "~"},{23, "FrameSpecInfoSelector", "IEnumeration", "水印信息选择"},{24, "FrameSpecInfo", "IBoolean", "是否使能该水印信息"},}},{"AcquisitionControl","采集控制", /**/{{ 0, "AcquisitionMode", "IEnumeration", "采集模式,单帧、多帧、连续"},{ 1, "AcquisitionStart", "ICommand", "开始取流"},{ 2, "AcquisitionStop", "ICommand", " 结束取流"},{ 3, "AcquisitionBurstFrameCount", "IInteger", " 一次触发采集的帧数"},{ 4, "AcquisitionFrameRate", "IFloat", "Trigger Mode是off的时候该值生效"},{ 5, "AcquisitionFrameRateEnable", "IBoolean", " 设置的帧速率是否起效"},{ 6, "AcquisitionLineRate", "IInteger", "行频设置"},{ 7, "AcquisitionLineRateEnable", "IBoolean", " 行频控制使能"},{ 8, "ResultingLineRate", "IInteger", "实际行频"},{ 9, "ResultingFrameRate", "IFloat", "相机的实际采集帧率"},{10, "TriggerSelector", "IEnumeration", "触发事件选择"},{11, "TriggerMode[TriggerSelector]", "IEnumeration", "触发模式"},{12, "TriggerSoftware[TriggerSelector]", "ICommand", " 执行一次软触发"},{13, "TriggerSource[TriggerSelector]", "IEnumeration", "触发源"},{14, "TriggerActivation[TriggerSelector]", "IEnumeration", "触发上升沿、下降沿、高电平、低电平等"},{15, "TriggerDelay[TriggerSelector]", "IFloat", "触发延时"},{16, "TriggerCacheEnable", "IBoolean", "是否使能触发缓存"},{17, "SensorShutterMode", "IEnumeration", "设置传感器曝光模式"},{18, "ExposureMode", "IEnumeration", "曝光模式选择"},{19, "ExposureTime", "IFloat", "曝光时间"},{20, "ExposureAuto", "IEnumeration", "自动曝光"},{21, "AutoExposureTimeLowerLimit", "IInteger", "自动曝光下限"},{22, "AutoExposureTimeUpperLimit", "IInteger", "自动曝光上限"},{23, "GainShutPrior", "IEnumeration", "设置增益和曝光的优先级"},{24, "FrameTimeoutEnable", "IBoolean", "帧超时使能"},{25, "FrameTimeoutTime", "IInteger", "帧超时时间"},{26, "HDREnable ", "IBoolean", "是否使能宽动态"},{27, "HDRSelector", "IInteger", "HDR选择器"},{28, "HDRShuter", "IInteger", "HDR曝光值"},{29, "HDRGain", "IFloat", "HDR增益值"},}},{"DigitalIOControl", "数字IO控制",{{ 0, "LineSelector", "IEnumeration", "I/O选择"},{ 1, "LineMode[LineSelector] ", "IEnumeration", "I/O模式"},{ 2, "LineInverter[LineSelector]", "IBoolean", "I/O电平转换"},{ 3, "LineTermination ", "IBoolean", "I/O单端差分选择"},{ 4, "LineStatus[LineSelector]", "IBoolean", "I/O 状态"},{ 5, "LineStatusAll ", "IInteger", "所有I/O状态"},{ 6, "LineSource[LineSelector]"," IEnumeration", "输出的事件源"},{ 7, "StrobeEnable", "IBoolean", ""},{ 8, "LineDebouncerTime", "IInteger", "I/O去抖时间"},{ 9, "StrobeLineDuration", "IInteger", "输出电平持续时间,单位us"},{10, "StrobeLineDelay", "IInteger", "输出延时,单位us"},{11, "StrobeLinePreDelay", "IInteger", "预延时,单位us"},}},{"Counter And Timer Control","计数器和定时器控制",{{ 0, "CounterSelector ", "IEnumeration", "计数器选择"},{ 1, "CounterEventSource[CounterSelector]", "IEnumeration", "计数器事件源"},{ 2, "CounterResetSource[CounterSelector]", "IEnumeration", "计数器复位源"},{ 3, "CounterReset[CounterSelector]", "ICommand", "计数器复位"},{ 4, "CounterValue[CounterSelector] ", "IInteger", "计数器值"},{ 5, "CounterCurrentValue", "IInteger", "计数器当前值"},}},{"Analog Controls", "模拟控制",{ { 0, "Gain[GainSelector]", "IFloat", "增益值"},{ 1, "GainAuto[GainSelector]", "IEnumeration", "自动增益"},{ 2, "AutoGainLowerLimit", "IFloat", "自动增益下限"},{ 3, "AutoGainUpperLimit", "IFloat", "自动增益上限"},{ 4, "ADCGainEnable ", "IBoolean", "ADC 增益使能"},{ 5, "DigitalShift", "IFloat", "数字偏移调节"},{ 6, "DigitalShiftEnable", "IBoolean", "数字偏移使能"},{ 7, "Brightness", "IInteger", "亮度"},{ 8, "BlackLevel[BlackLevelSelector]", "Iinteger", "黑电平调节"},{ 9, "BlackLevelEnable", "IBoolean", "黑电平调节使能"},{10, "BlackLevelAuto[BlackLevelSelector]", "IEnumeration", "黑电平调节方式"},{11, "BalanceWhiteAuto", "Ienumeration", "自动白平衡"},{12, "BalanceRatioSelector", "Ienumeration", "白平衡比例选择"},{13, "BalanceRatio[BalanceRatioSelector]", "Iinteger", "白平衡值"},{14, "Gamma ", "IFloat", "伽马调节"},{15, "GammaSelector", "Ienumeration", "Gamma选择"},{16, "GammaEnable", "IBoolean", "Gamma使能"},{17, "Sharpness ", "IInteger", "图像锐度"},{18, "SharpnessEnable", "IBoolean", "启用/禁用锐度调节"},{19, "SharpnessAuto", "IEnumeration", "锐度自动调节类型"},{20, "Hue", "IInteger", "色度值调节"},{21, "HueEnable", "IBoolean", "色度使能"},{22, "HueAuto", "IEnumeration", "灰度自动调节类型"},{23, "Saturation", "IInteger", "饱和度值调节"},{24, "SaturationEnable", "IBoolean", "饱和度使能"},{25, "SaturationAuto", "IEnumeration", "饱和度自动调节类型"},{26, "DigitalNoiseReductionMode", "IEnumeration", "数字降噪等级选择"},{27, "NoiseReduction", "IInteger", "降噪值"},{28, "AirspaceNoiseReduction", "IInteger", "空域降噪"},{29, "TemporalNoiseReduction", "IInteger", "时域降噪"},{30, "AutoFunctionAOISelector", "IEnumeration", "自动AOI选择"},{31, "AutoFunctionAOIWidth", "IInteger", "自动AOI宽"},{32, "AutoFunctionAOIHeight", "IInteger", "自动AOI高"},{33, "AutoFunctionAOIOffsetX", "IInteger", "自动AOI水平方向偏移"},{34, "AutoFunctionAOIOffsetY", "IInteger", "自动AOI竖直方向偏移"},{35, "AutoFunctionAOIUsageIntensity", "IBoolean", "根据AOI区域自动曝光"},{36, "AutoFunctionAOIUsageWhiteBalance", "IBoolean", "根据AOI区域自动白平衡"},}},{"LUT Control", "显示查找表控制",{{ 0, "LUTSelector", "IEnumeration", "亮度、R\G\B"},{ 1, "LUTEnable[LUTSelector]", "IBoolean", "使能"},{ 2, "LUTIndex[LUTSelector]", "IInteger", "索引号"},{ 3, "LUTValue[LUTSelector][LUTIndex]", "IInteger", "值"},{ 4, "LUTValueAll[LUTSelector]", "Register", "LUT所有的值"},} },{"EncoderControl", "编码器控制",{{ 0, "EncoderSelector", "IEnumeration", "编码器选择"},{ 1, "EncoderSourceA", "IEnumeration", "编码器A源选择"},{ 2, "EncoderSourceB", "IEnumeration", "编码器B源选择"},{ 3, "EncoderTriggerMode", "IEnumeration", "编码器触发模式"},{ 4, "EncoderCounterMode", "IEnumeration", "编码器计数模式"},{ 5, "EncoderCounter", "IInteger", "编码器计数器值调节"},{ 6, "EncoderCounterMax", "IInteger", "编码器计数器最大值"},{ 7, "EncoderCounterReset", "ICommand", "编码器计数器复位"},{ 8, "EncoderMaxReverseCounter", "IInteger", "编码器最大反转计数器值"},{ 9, "EncoderReverseCounterReset", "ICommand", "编码器反转计数器复位"},} },{"FrequencyConverterControl", "变频器控制",{{ 0, "InputSource", "IEnumeration", "分频器输入源"},{ 1, "SignalAlignment", "IEnumeration", "分频器信号方向"},{ 2, "PreDivider", "IInteger", "前置分频器调节"},{ 3, "Multiplier", "IInteger", "倍频器调节"},{ 4, "PostDivider", "IInteger", "后置分频器调节"},} },{"ShadingCorrection", "阴影矫正",{{ 0, "ShadingSelector", "IEnumeration", "明暗场校正选择"},{ 1, "ActivateShading", "ICommand", "主动校正"},{ 2, "NUCEnable", "IBoolean", "NUC使能开关"},{ 3, "FPNCEnable", "IBoolean", "FPNC状态开关"},{ 4, "PRNUCEnable", "IBoolean", "PRNUC状态开关"},} },{"User Set Control", "用户集控制",{{ 0, "UserSetCurrent", "IInteger", "当前用户参数"},{ 1, "UserSetSelector", "IEnumeration", "设置载入的参数"},{ 2, "UserSetLoad[UserSetSelector]","ICommand", "加载"},{ 3, "UserSetSave[UserSetSelector]","ICommand", "用户参数保存"},{ 4, "UserSetDefault", "IEnumeration", "默认状态"},} },{"Transport Layer Control", "传输层控制",{{ 0, "PayloadSize", "IInteger", "一帧数据的大小"},{ 1, "GevVersionMajor", "IInteger", "GEV主版本号"},{ 2, "GevVersionMinor", "IInteger", "GEV子版本号"},{ 3, "GevDeviceModeIsBigEndian", "IBoolean", "大端"},{ 4, "GevDeviceModeCharacterSet", "IEnumeration", "字符集"},{ 5, "GevInterfaceSelector", "IInteger", "GEV接口数"},{ 6, "GevMACAddress", "IInteger", "MAC地址"},{ 7, "GevSupportedOptionSelector", "IEnumeration", "相机可以支持的功能选项"},{ 8, "GevSupportedOption[GevSupportedOptionSelector]", "IBoolean", "相机是否支持Selector 选择的功能"},{ 9, "GevCurrentIPConfigurationLLA", "IBoolean", "IP是否为LLA"},{10, "GevCurrentIPConfigurationDHCP[GevInterfaceSelector]", " IBoolean", "IP是否为DHCP"},{11, "GevCurrentIPConfigurationPersistentIP[GevInterfaceSelector]", " IBoolean", "IP是否为静态IP"},{12, "GevPAUSEFrameReception[GevInterfaceSelector]", "IBoolean", "控制PAUSE帧是否开启"},{13, "GevCurrentIPAddress[GevInterfaceSelector]", "IInteger", "IP地址"},{14, "GevCurrentSubnetMask[GevInterfaceSelector]", "IInteger", "子网掩码"},{15, "GevCurrentDefaultGateway[GevInterfaceSelector]", "IInteger", "默认网关"},{16, "GevFirstURL", "IString", "XML第一选择路径"},{17, "GevSecondURL", "IString", "XML第二选择路径"},{18, "GevNumberOfInterfaces", "IInteger", "GEV接口数"},{19, "GevPersistentIPAddress[GevInterfaceSelector]", "IInteger", "静态IP地址"},{20, "GevPersistentSubnetMask[GevInterfaceSelector]", "IInteger", "静态子网掩码"},{21, "GevPersistentDefaultGateway[GevInterfaceSelector]", "IInteger", "静态默认网关"},{22, "GevLinkSpeed", "IInteger", "网络速率"},{23, "GevMessageChannelCount", "IInteger", "消息通道数"},{24, "GevStreamChannelCount", "IInteger", "流通道"},{25, "GevHeartbeatTimeout", "IInteger", "心跳超时时间"},{26, "GevGVCPHeartbeatDisable", "IBoolean", "关闭心跳"},{27, "GevTimestampTickFrequency", "IInteger", "时间戳频率"},{28, "GevTimestampControlLatch", "ICommand", "获取时间戳"},{29, "GevTimestampControlReset", "ICommand", "复位时间戳"},{30, "GevTimestampControlLatchReset", "ICommand", "复位时间戳同时获取时间戳"},{31, "GevTimestampValue", "IInteger", "时间戳值"},{32, "GevCCP", "IEnumeration", "App端的控制权限"},{33, "GevStreamChannelSelector", "IInteger", "流通道选择"},{34, "GevSCPInterfaceIndex[GevStreamChannelSelector]", "IInteger", "GEV接口索引"},{35, "GevSCPHostPort[GevStreamChannelSelector]", "IInteger", "主机端口"},{36, "GevSCPDirectionGevStreamChannelSelector]", "IInteger", "表明流通道方向"},{37, "GevSCPSFireTestPacket[GevStreamChannelSelector]", "IBoolean", "Fire Test Packet使能"},{38, "GevSCPSDoNotFragment[GevStreamChannelSelector]", "IBoolean", "Fire Test Packet使能"},{39, "GevSCPSBigEndian[GevStreamChannelSelector]", "IBoolean", "流数据大小端"},{40, "PacketUnorderSupport", "IBoolean", "是否支持GVSP包乱序发送"},{41, "GevSCPSPacketSize", "IInteger", "网络包大小"},{42, "GevSCPD[GevStreamChannelSelector]", "IInteger", "发包延时"},{43, "GevSCDA[GevStreamChannelSelector]", "IInteger", "流数据的目的地址"},{44, "GevSCSP[GevStreamChannelSelector]", "IInteger", "流数据的源端口"},{45, "TLParamsLocked", "IInteger", "取流时为1"}}}
} ;
关于面阵相机相关的
暂未接触过面阵相机这块,后续如有接触,会做更新。
ISP图像调优(支持工业相机)相关推荐
- Hi3516EV200图像调优
一.平台搭建 1.将Hi3516EV200_PQ_V1.0.0.3.tgz放到nfs挂载目录下解压 ,进入Hi3516EV200_PQ_V1.0.0.3,执行StartControl.sh 2.执行H ...
- RK3588s imx415相机适配及ISP调优系列(三)--- RKISP调试环境配置
经过上篇的相机配置后,两个mipi相机已经可以正常出图了.其实对于rk系列如何配置mipi相机,网上已有不少相关资料均可参考借鉴. RK3588s imx415相机适配及ISP调优系列(一) RK35 ...
- RK3588s imx415相机适配及ISP调优系列(一)
1.前言 最近手上的一个项目要开发一个双目相机的应用,选用的板卡是Firefly AIO-3588S-JD4(RK3588s),sensor用的是imx415.由于是第一次调试相机模组,从板卡sdk编 ...
- ISP图像调试之关于海思平台下的3DNR降噪中各个参数模块的一些总结
这篇文章是参考海思3DNR指南文档写的,由于对其中参数之间的联系以及各个参数会给图像带来怎样的影响效果不是很清楚,所以就研究了一下,遇到问题好做调试. 1.3DNR分时域降噪TFy.空域降噪SFy.动 ...
- ISP—图像调试实习生(第七天)
ISP流程-Sensor对接及镜头的标定工作 目录 ISP流程-Sensor对接及镜头的标定工作 1.Sensor的接入 2.镜头的标定工作 2.1 黑电平标定 2.2 NR的标定 2.3 Senso ...
- 阿里云PAI-Diffusion功能再升级,全链路支持模型调优,平均推理速度提升75%以上
导读 随着Stable Diffusion模型在AI圈的爆火,AI生成内容(AI Generated Content,AIGC)的应用呈现出井喷式的增长趋势.其中,文图生成(Text-to-image ...
- java imageio处理图像_Linux geoserver调优之Java图像处理优化(原生JAI和ImageIO和java默认库相互转换)...
注:geoserver 版本 Linux geoserver2.15.0 安装 :bin方式安装(内嵌jetty,非war安装) 一.geoserver调优之Java图像处理优化 1.原生JAI ...
- 开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍
作者 | Evan Harris 译者 | Monanfei 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) [导语]这篇文章为大家介绍了一个开源项目--sk-dist.在 ...
- 【JVM调优】JVM的运行参数
在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能高效的运行,绝大部分的参数保持默认即可 三种参数类型 jvm的参数类型分为三类,分别是 * 标准参数* -help* -versio ...
最新文章
- python简单编程语言_功能强大而又简单易学的编程语言Python
- Android 程序自动更新功能模块实现
- python学习方向-Python方向(转载)
- 【bzoj4264】小C找朋友
- how is batch operation handled in backend
- 有意思:textarea resize属性下纯CSS交互效果
- input框带图片的写法
- Docker部署安装MongoDB
- 高性能可扩展mysql-数据库设计规范
- 《深入理解 Spring Cloud 与微服务构建》第十三章 配置中心 Spring Cloud Config
- 多校3 1008 Solve this interesting problem
- 利用python获取nginx服务的ip以及流量统计信息
- Linux设备管理(三):sysfs文件系统的功能及其应用
- HBuilde H5开发,关于JSON的Storage存储
- 产品经理面试必问问题与答题模板
- win10共享文件夹的创建、访问凭据一直提示“用户名或密码错误”的解决办法
- 计算机网络密码凭据,电脑无法上网时总是提示需要输入网络密码如何解决
- 用于数据科学和机器学习的GitHub存储库和Reddit主题
- Manjaro快速上手指南-微信、TIM/QQ、网易云音乐、WPS等等
- 【Angular4】constructor ngOnInit
热门文章
- RabbitMQ第一种消息模型--直连模型
- 《高效学习OpenGL》之 操作矩阵堆栈 glPushMatrix(),glPopMatrix()
- 使用ldapadd,ldapmodify,slapcat 进行数据增加,备份,导入导出数据ldapsearch获取中文组织结构为加密过的字符串
- 计算机考试准考证是什么样子
- 基于stm32单片机的台历日历计时器万年历Proteus仿真
- c语言中stat函数,C语言:stat,fstat和lstat函数
- Kaggle —— “You have exceeded the quota for this request. Please wait a bit and try again later.“
- 电脑及手机端支付宝应用接入的实现
- c语言程序设计李新华,21世纪高等学校规划教材:C语言程序设计
- Flash存储W25Q16芯片