星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • opencv中的代码如何在openmv里实现?



    • 比如说opencv里凸包检测的算法,要调用到opencv的头文件和函数,在openmv里要怎么实现?

       #include "opencv2/imgproc/imgproc.hpp"
       #include <iostream>
       #include <stdio.h>
       #include <stdlib.h>
      
       using namespace cv;
       using namespace std;
      
       Mat src; Mat src_gray;
       int thresh = 100;
       int max_thresh = 255;
       RNG rng(12345);
      
       /// Function header
       void thresh_callback(int, void* );
      
      /** @function main */
      int main( int argc, char** argv )
       {
         /// Load source image and convert it to gray
         src = imread( argv[1], 1 );
      
         /// Convert image to gray and blur it
         cvtColor( src, src_gray, CV_BGR2GRAY );
         blur( src_gray, src_gray, Size(3,3) );
      
         /// Create Window
         char* source_window = "Source";
         namedWindow( source_window, CV_WINDOW_AUTOSIZE );
         imshow( source_window, src );
      
         createTrackbar( " Threshold:", "Source", &thresh, max_thresh, thresh_callback );
         thresh_callback( 0, 0 );
      
         waitKey(0);
         return(0);
       }
      
       /** @function thresh_callback */
       void thresh_callback(int, void* )
       {
         Mat src_copy = src.clone();
         Mat threshold_output;
         vector<vector<Point> > contours;
         vector<Vec4i> hierarchy;
      
         /// Detect edges using Threshold
         threshold( src_gray, threshold_output, thresh, 255, THRESH_BINARY );
      
         /// Find contours
         findContours( threshold_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );
      
         /// Find the convex hull object for each contour
         vector<vector<Point> >hull( contours.size() );
         for( int i = 0; i < contours.size(); i++ )
            {  convexHull( Mat(contours[i]), hull[i], false ); }
      
         /// Draw contours + hull results
         Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 );
         for( int i = 0; i< contours.size(); i++ )
            {
              Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) );
              drawContours( drawing, contours, i, color, 1, 8, vector<Vec4i>(), 0, Point() );
              drawContours( drawing, hull, i, color, 1, 8, vector<Vec4i>(), 0, Point() );
            }
      
         /// Show in a window
         namedWindow( "Hull demo", CV_WINDOW_AUTOSIZE );
         imshow( "Hull demo", drawing );
       }
      
      

      来源:https://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/hull/hull.html#hull0_1556421588698_Hull_Original_Image.jpg 0_1556421607161_Hull_Result.jpg



    • 实现不了,目前没有这个函数。