Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaCV中的稠密光流(双TVL1) 我已经实现了密集光流来计算C++中每个像素的速度。这个例子对我帮助很大()。现在我想将代码转换为java,但我找不到createOptFlow_DualTVL1()的等效JavaCV函数。有人能帮我吗?如果能以身作则,那就太好了_C++_Opencv_Javacv_Opticalflow - Fatal编程技术网

JavaCV中的稠密光流(双TVL1) 我已经实现了密集光流来计算C++中每个像素的速度。这个例子对我帮助很大()。现在我想将代码转换为java,但我找不到createOptFlow_DualTVL1()的等效JavaCV函数。有人能帮我吗?如果能以身作则,那就太好了

JavaCV中的稠密光流(双TVL1) 我已经实现了密集光流来计算C++中每个像素的速度。这个例子对我帮助很大()。现在我想将代码转换为java,但我找不到createOptFlow_DualTVL1()的等效JavaCV函数。有人能帮我吗?如果能以身作则,那就太好了,c++,opencv,javacv,opticalflow,C++,Opencv,Javacv,Opticalflow,如果这是正确的,我如何从光流(IplImage)中得到光学值 谢谢public void TestOF() { IplImage pFrame=cvLoadImage(“/sdcard//DCIM/Camera/Frame-1.jpg”); IplImage cFrame=cvLoadImage(“/sdcard//DCIM/Camera/Frame-2.jpg”); IplImage pGray=cvCreateImage(cvGetSize(pFrame),IPL_深度_8U,1); Ipl

如果这是正确的,我如何从光流(IplImage)中得到光学值

谢谢

public void TestOF()
{
IplImage pFrame=cvLoadImage(“/sdcard//DCIM/Camera/Frame-1.jpg”);
IplImage cFrame=cvLoadImage(“/sdcard//DCIM/Camera/Frame-2.jpg”);
IplImage pGray=cvCreateImage(cvGetSize(pFrame),IPL_深度_8U,1);
IplImage cGray=cvCreateImage(cvGetSize(cFrame),IPL_DEPTH_8U,1);
cvConvertImage(pFrame、pGray、IPL_DEPTH_32F);
cvConvertImage(cFrame、cGray、IPL_DEPTH_32F);
IplImage Optical_Flow=cvCreateImage(cvGetSize(pGray),IPL_DEPTH_32F,2);
DenseOpticalFlow tvl1=createOptFlow_DualTVL1();
tvl1.计算(pGray、cGray、光流);
FloatBuffer=Optical_Flow.getFloatBuffer();
CvMat OF=cvCreateMat(pGray.height(),pGray.width(),CV_32FC1);
int像素速度=0;
int x速度=0;
int-yVelocity=0;
int bufferIndex=0;
对于(int y=0;y
该代码将使用两幅图像(第1帧和第2帧)之间的DenseOpticalFlow计算每个像素的光流,并将每个像素的速度放到另一幅图像(of)的坐标中。 干杯

IplImage pFrameGray = cvCreateImage(cvGetSize(pFront),IPL_DEPTH_8U,1);
IplImage cFrameGray = cvCreateImage(cvGetSize(pFront),IPL_DEPTH_8U,1);
cvConvertImage(pFront, pFrameGray, CV_CVTIMG_FLIP);
cvConvertImage(cFront, cFrameGray, CV_CVTIMG_FLIP);
IplImage Optical_Flow  = cvCreateImage( cvSize(pFrameGray.width(),pFrameGray.height()), IPL_DEPTH_32F, 2 );
DenseOpticalFlow tvl1 = createOptFlow_DualTVL1();
tvl1.calc(pFrameGray, cFrameGray, Optical_Flow);
public void TestOF()
{
   IplImage pFrame = cvLoadImage("/sdcard//DCIM/Camera/Frame-1.jpg");
   IplImage cFrame = cvLoadImage("/sdcard//DCIM/Camera/Frame-2.jpg");
   IplImage pGray = cvCreateImage(cvGetSize(pFrame),IPL_DEPTH_8U,1);
   IplImage cGray = cvCreateImage(cvGetSize(cFrame),IPL_DEPTH_8U,1);
   cvConvertImage(pFrame, pGray, IPL_DEPTH_32F);
   cvConvertImage(cFrame, cGray, IPL_DEPTH_32F);
   IplImage Optical_Flow  = cvCreateImage( cvGetSize(pGray), IPL_DEPTH_32F, 2 );
   DenseOpticalFlow tvl1 = createOptFlow_DualTVL1();
   tvl1.calc(pGray, cGray, Optical_Flow);
   FloatBuffer buffer = Optical_Flow.getFloatBuffer(); 
   CvMat OF  = cvCreateMat( pGray.height(),pGray.width(), CV_32FC1);
   int pixelVelocity =0;
   int xVelocity = 0;
   int yVelocity = 0;
   int bufferIndex = 0;
   for(int y =0; y< pGray.height(); y++)
   {
      for(int x = 0; x < pGray.width() ;x++)
      {
         xVelocity = (int)buffer.get(bufferIndex);
         yVelocity = (int)buffer.get(bufferIndex+1);
         pixelVelocity = (int)Math.sqrt((double)(xVelocity*xVelocity +             yVelocity*yVelocity));
         OF.put(y, x, pixelVelocity);
     }
   }
   IplImage temp = OF.asIplImage();
   cvSaveImage("/sdcard//DCIM/Camera/OF.jpg",temp);
}