ISP图像调优(支持工业相机)
生活随笔
收集整理的這篇文章主要介紹了
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图像调优(支持工业相机)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学生认证,专业版pycharm
- 下一篇: css 图片底部多出的空白