0

次のコードを使用して、内視鏡ビデオから医師のツールを検出しようとしています

static void video_tracking(){
      //read image
       IplImage orgImg = cvLoadImage("C:/Users/Ioanna/Desktop/pic.png");

       IplImage thresholdImage = hsvThreshold(orgImg);
       cvSaveImage("hsvthreshold.jpg", thresholdImage);
       Dimension position = getCoordinates(thresholdImage);
       System.out.println("Dimension of original Image : " + thresholdImage.width() + " , " + thresholdImage.height());
       System.out.println("Position of red spot    : x : " + position.width + " , y : " + position.height);

   }

   static Dimension getCoordinates(IplImage thresholdImage) {
       int posX = 0;
       int posY = 0;
       CvMoments moments = new CvMoments();
       cvMoments(thresholdImage, moments, 1);
       double momX10 = cvGetSpatialMoment(moments, 1, 0); // (x,y)
       double momY01 = cvGetSpatialMoment(moments, 0, 1);// (x,y)
       double area = cvGetCentralMoment(moments, 0, 0);
       posX = (int) (momX10 / area);
       posY = (int) (momY01 / area);
       return new Dimension(posX, posY);
   }

   static IplImage hsvThreshold(IplImage orgImg) {

       // Convert the image into an HSV image
       IplImage imgHSV = cvCreateImage(cvGetSize(orgImg), 8, 3);

       cvCvtColor(orgImg, imgHSV, CV_BGR2HSV);

       //create a new image that will hold the threholded image
       // 1- color = monochrome
       IplImage imgThreshold = cvCreateImage(cvGetSize(orgImg), orgImg.depth(), 1);

       //do the actual thresholding
       cvInRangeS(imgHSV, cvScalar(13, 0, 0, 0), cvScalar(40, 117, 124, 88), imgThreshold);

       cvReleaseImage(imgHSV);

       cvSmooth(imgThreshold, imgThreshold, CV_MEDIAN, 13);
       // save
       return imgThreshold;
   }

上記のコードの入力は、2 つの医師のオブジェクトを含むカラー画像であり、出力はツールを検出するグレースケール画像です。申し訳ありませんが、システムが画像のアップロードを許可していません。

問題は、2 つのツールの位置を見つけて長方形を描く方法がわからないことです。javacv/opencv を使用して目的をアーカイブする方法を説明してください。

4

1 に答える 1

0

これは、Haar Casacde ファイルを使用して実現できます。Google が提供するビルトイン Haar ファイルの一部は、opencv\data\haarcascades ディレクトリにあります。これらのファイルは、重いトレーニング セクションによって生成された XML ファイルです。いくつかのサンプル haar ファイルは、顔検出、耳検出など。サンプル プロジェクトは、ここで見つけることができます。任意の目的で独自の haar カスケード ファイルを生成できます。Haarカスケードファイルを生成する方法の 1 つは、ここで見つけることができます。

于 2014-02-28T18:42:57.930 に答える