法华寺网站建设,网站建设 企业,上海小程序开发定制,如何在外管局网站做延期opencv在esp32及esp32s3上面的移植
Opencv简介 OpenCV是一个基于Apache2.0许可#xff08;开源#xff09;发行的跨平台计算机视觉和机器学习软件库#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上#xff0c;它轻量级而且高效——由一系列 C 函数和少量…opencv在esp32及esp32s3上面的移植
Opencv简介 OpenCV是一个基于Apache2.0许可开源发行的跨平台计算机视觉和机器学习软件库可以运行在Linux、Windows、Android和Mac OS操作系统上它轻量级而且高效——由一系列 C 函数和少量 C 类构成同时提供了Python、Ruby、MATLAB等语言的接口实现了图像处理和计算机视觉方面的很多通用算法。 这就使我们在esp32上实现OpenCV进行图像处理以及计算机视觉成为了现实。 2、Esp32s3简介 ESP32-S3 和 ESP32 一样是一款同时支持WIFI和蓝牙功能可以说是专为物联网而生的一款Soc应用领域贯穿移动设备、可穿戴电子设备、智能家居等在2,4GHz频带支持20MHz和40MHz频宽和以往 ESP32 不一样的是蓝牙除了支持BLE以外目前支持 Bluetooth 5 和 Bluetooth mesh更多的GPIO口使其能控制的外设达到更多全速USB OTG支持直接通过USB协议与芯片进行通信。 最主要的是esp32s3具有双核的cpu。在图像处理方面有着先天的优势。 Core0通常使用作为wifi数据传输的处理。Core1进行视觉处理进程的运行。 3、移植硬件电路设计 为实现esp32s3的视频处理的内存需求我们选用内置8M flash外扩8M spram的模组摄像头采用了ov2640作为输入另外为了调试方便采用了240*240的LCD屏作为显示终端可以实时看见图像处理结果。 以下是原理图 整体系统效果如下 反面的摄像头以及补光灯 此开发板可以在某宝上面搜索esp32s3 opencv。 4、Demo软件效果 一、Opencv中的目标拾取代码。通常我们在图像处理的时候需要对采集照片进行灰度处理然后对照片进行二值化处理。进而进行目标拾取。 使用的函数为 Mat inputImage(fb-height, fb-width, CV_8UC2, fb-buf); // rgb565 is 2 channels of 8-bit unsigned cvtColor(inputImage, inputImage, COLOR_BGR5652GRAY); threshold(inputImage, inputImage, 128, 255, THRESH_BINARY); 轻松就会得到目标物体效果如下 开发板中提供demo的源代码可以使用esp-idf进行编译运行。 二、如果进行颜色拾取的话可以使用以下函数 if (s-pixformat PIXFORMAT_JPEG) { TFT_jpg_image(CENTER, CENTER, 0, -1, NULL, fb-buf, fb-len); esp_camera_fb_return(fb); fb NULL; } else { Mat inputImage(fb-height, fb-width, CV_8UC2, fb-buf); cvtColor(inputImage, inputImage, COLOR_BGR5652BGR); int pos_x fb-width / 2; int pos_y fb-height / 2; int blue inputImage.atVec3b(pos_x, pos_y)[0]; // getting the pixel values// int green inputImage.atVec3b(pos_x, pos_y)[1]; // getting the pixel values// int red inputImage.atVec3b(pos_x, pos_y)[2]; // getting the pixel values// updateColorCode(red, green, blue); std::vectorMat bgr_planes; split(inputImage, bgr_planes); float range[] {0, 240}; const float *histRange {range}; bool uniform true; bool accumulate false; Mat b_hist, g_hist, r_hist; calcHist(bgr_planes[0], 1, 0, Mat(), b_hist, 1, histSize, histRange, uniform, accumulate); calcHist(bgr_planes[1], 1, 0, Mat(), g_hist, 1, histSize, histRange, uniform, accumulate); calcHist(bgr_planes[2], 1, 0, Mat(), r_hist, 1, histSize, histRange, uniform, accumulate); drawHistogram(b_hist, g_hist, r_hist, inputImage); drawCenterMark(inputImage); updateCameraImage(inputImage); } esp_camera_fb_return(fb); 5、结语 在视觉处理OpenCV有着开源的优势小而精悍esp32s3具有双核的CPU可以使用wifi进行通讯。这样就可以无线的方式传输图像处理结果。