扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

STM32 ISP图像信号处理在STM32N6中的使用体验

2025/03/13
3063
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1、前言

之前在STM32N6中实现了官方例程DCMIPP和CSI的移植,并且解决了CubeMX在CSI的BUG以及如何解决。

但是摄像头获取的是黑白图片,本期我们介绍ISP并且利用STM32N6的ISP库实现色彩调整。

图像对比如下:

2、相机参数

IMX335是一款高性能的CMOS图像传感器,为了使其在不同的应用场景中发挥最佳性能,需要根据具体需求进行相机参数的设置,就如同相机专业模式一样,增益值影响图像的亮度。较高的增益可以使图像更亮,但也增加更多的噪声。

曝光时间决定了传感器捕捉光线的时间长度。较长的曝光时间可以使更多光线进入,使图像更亮,但也可能导致运动模糊。色彩平衡和白平衡可以确保图像的色彩准确性。

因此在获取图像的基础上如何调整相机参数便是一门深厚的学问。

IMX335可以设置增益,设置曝光等基本参数的功能,但是想要获得高质量图像,就需要了解“图像信号处理器”即ISP(Image Signal Processor)

3、Image Signal Processor

ISP是摄像头系统中的核心芯片/模块,负责将图像传感器(IMX335)输出的原始信号(RAW Data)转换为高质量的可视化图像。

其核心任务包括:色彩校正(如白平衡调整),降噪处理,自动曝光(AE)与自动对焦(AF),锐化与细节增强,动态范围优化(如HDR/WDR)。

ST推出其ISP工具:STM32 ISP IQTune

其是一款用于STM32微控制器的图像信号处理器(ISP)调校软件,用于图像质量优化,支持实时预览,自动调整和色彩分析。

它提供了三个平台的客户端以及为STM32N6专用的库,本期我们移植X-CUBE-ISP到我们的STM32N6开发板中。

4、ISP-Lib

X-Cube-ISP主要包含了几个.a静态库文件以及ISP的驱动API

将所有文件添加到工程中,修改isp_conf.h和isp_param_conf.h的文件名(去掉templete)。

static ISP_StatusTypeDef GetSensorInfoHelper(uint32_t Instance, ISP_SensorInfoTypeDef *SensorInfo){  UNUSED(Instance);  return (ISP_StatusTypeDef) IMX335_GetSensorInfo(&IMX335Obj, (IMX335_SensorInfo_t *) SensorInfo);}
/**  * @brief  ISP Middleware helper. Camera gain setter  * @retval ISP Status  */static ISP_StatusTypeDef SetSensorGainHelper(uint32_t Instance, int32_t Gain){  UNUSED(Instance);  isp_gain = Gain;  return (ISP_StatusTypeDef) IMX335_SetGain(&IMX335Obj, Gain);}
/**  * @brief  ISP Middleware helper. Camera gain getter  * @retval ISP Status  */static ISP_StatusTypeDef GetSensorGainHelper(uint32_t Instance, int32_t *Gain){  UNUSED(Instance);  *Gain = isp_gain;  return ISP_OK;}
/**  * @brief  ISP Middleware helper. Camera exposure setter  * @retval ISP Status  */static ISP_StatusTypeDef SetSensorExposureHelper(uint32_t Instance, int32_t Exposure){  UNUSED(Instance);  isp_exposure = Exposure;  return (ISP_StatusTypeDef) IMX335_SetExposure(&IMX335Obj, Exposure);}
/**  * @brief  ISP Middleware helper. Camera exposure getter  * @retval ISP Status  */static ISP_StatusTypeDef GetSensorExposureHelper(uint32_t Instance, int32_t *Exposure){  UNUSED(Instance);  *Exposure = isp_exposure;  return ISP_OK;}

定义ISP的回调函数,其目的主要是获取和设置传感器的图像参数信息。

ISP_AppliHelpersTypeDef appliHelpers = {0};ISP_StatAreaTypeDef statArea = {0};appliHelpers.GetSensorInfo = GetSensorInfoHelper;appliHelpers.SetSensorGain = SetSensorGainHelper;appliHelpers.GetSensorGain = GetSensorGainHelper;appliHelpers.SetSensorExposure = SetSensorExposureHelper;appliHelpers.GetSensorExposure = GetSensorExposureHelper;statArea.X0 = 0;statArea.Y0 = 0;statArea.XSize = 2592;statArea.YSize = 1944;/* Initialize the Image Signal Processing middleware */if(ISP_Init(&hcamera_isp, &hdcmipp, 0, &appliHelpers, &statArea, ISP_IQParamCacheInit[0]) != ISP_OK){  Error_Handler();}if (HAL_DCMIPP_CSI_PIPE_Start(&hdcmipp, DCMIPP_PIPE1, DCMIPP_VIRTUAL_CHANNEL0 , BUFFER_ADDRESS, DCMIPP_MODE_CONTINUOUS) != HAL_OK){   Error_Handler();}if (ISP_Start(&hcamera_isp) != ISP_OK){  Error_Handler();}

设置ISP的基本参数,并且开启ISP处理,之后我们进行ISP调整。

    while(NbMainFrames < 60)    {      if (ISP_BackgroundProcess(&hcamera_isp) != ISP_OK)      {        HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_10);      }    }
void HAL_DCMIPP_PIPE_VsyncEventCallback(DCMIPP_HandleTypeDef *hdcmipp, uint32_t Pipe){  UNUSED(hdcmipp);  /* Update the frame counter and call the ISP statistics handler */  switch (Pipe)  {    case DCMIPP_PIPE0 :      ISP_IncDumpFrameId(&hcamera_isp);      break;    case DCMIPP_PIPE1 :      ISP_IncMainFrameId(&hcamera_isp);      ISP_GatherStatistics(&hcamera_isp);      break;    case DCMIPP_PIPE2 :      ISP_IncAncillaryFrameId(&hcamera_isp);      break;  }}  

传入60帧图像,让ISP进行调整,就可以实现图像色彩调整啦。

意法半导体

意法半导体

意法半导体(ST)集团于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司。意法半导体是世界最大的半导体公司之一,公司销售收入在半导体工业五大高速增长市场之间分布均衡(五大市场占2007年销售收入的百分比):通信(35%),消费(17%),计算机(16%),汽车(16%),工业(16%)。 据最新的工业统计数据,意法半导体是全球第五大半导体厂商,在很多市场居世界领先水平。例如,意法半导体是世界第一大专用模拟芯片和电源转换芯片制造商,世界第一大工业半导体和机顶盒芯片供应商,而且在分立器件、手机相机模块和车用集成电路领域居世界前列.

意法半导体(ST)集团于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司。意法半导体是世界最大的半导体公司之一,公司销售收入在半导体工业五大高速增长市场之间分布均衡(五大市场占2007年销售收入的百分比):通信(35%),消费(17%),计算机(16%),汽车(16%),工业(16%)。 据最新的工业统计数据,意法半导体是全球第五大半导体厂商,在很多市场居世界领先水平。例如,意法半导体是世界第一大专用模拟芯片和电源转换芯片制造商,世界第一大工业半导体和机顶盒芯片供应商,而且在分立器件、手机相机模块和车用集成电路领域居世界前列.收起

查看更多

相关推荐