Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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
在Android中使用JavaCv(OpenCV的Java包装器)进行图像过滤/操作_Android_Video Processing_Javacv_Iplimage - Fatal编程技术网

在Android中使用JavaCv(OpenCV的Java包装器)进行图像过滤/操作

在Android中使用JavaCv(OpenCV的Java包装器)进行图像过滤/操作,android,video-processing,javacv,iplimage,Android,Video Processing,Javacv,Iplimage,我的目标是将过滤器(灰度、复古、对比度、锐化、模糊、平滑等)应用于JavaCv的iplImage。在此过程中,我遇到了以下函数/类:iplImage、CvMat、cvInRangeS、cvtcolor、cvSmooth。我希望就这些问题作出澄清。以下是我的具体问题: iplImage矩阵位图转换 iplImage的格式HSV/RGB/BGR…..参考CVT颜色的ARGB/XYZ/Bayer/LUV 形式多样 cvInRange演示 cvMat使用 我可以用这些来构建我的过滤器吗 我想与大家分享我

我的目标是将过滤器(灰度、复古、对比度、锐化、模糊、平滑等)应用于JavaCv的iplImage。在此过程中,我遇到了以下函数/类:iplImage、CvMat、cvInRangeS、cvtcolor、cvSmooth。我希望就这些问题作出澄清。以下是我的具体问题:

  • iplImage矩阵位图转换
  • iplImage的格式HSV/RGB/BGR…..参考CVT颜色的ARGB/XYZ/Bayer/LUV
  • 形式多样
  • cvInRange演示
  • cvMat使用
  • 我可以用这些来构建我的过滤器吗

  • 我想与大家分享我在使用JavaCv进行图像和视频过滤时获得的知识。我已经成功地使用JavaCv开发了我的过滤器(灰度、复古、对比度、锐化、模糊和平滑)。我可以用位图操作轻松地进行图像过滤,但它太慢,无法用于视频过滤

    我想强调以下几点

  • FFmpegFrameGrabber为我们提供了一个帧对象。这个物体有两部分:图像和声音。Frame.image给出iplImage,如果Frame.image==null,则为声音。实际上,Frame对象只包含一个特定时间的iplImage或声音
  • Frame.image接收的iplImage具有YCrCb格式。因此,使用cvColor将使用转换参数CV_YCrCb2RGB、CV_YCrCb2RGBA等
  • 现在谈到FFmpegFrameRecorder,使用这个类可以很容易地录制iplImage,并通过调用recorder.record(Ipl_图像)生成视频。如果希望将frameGrabber和FrameRecorder用作反馈实现,则可以使用frameGrabber.getImageWidth()、frameGrabber.getImageHeight()、frameGrabber.GetAudioChannel()作为FFmpegFrameRecorder构造函数的参数
  • 要从FrameGrabber录制声音,需要在每次迭代时检查Frame.image参数。如果不为空,则记录iplImage,如果为空,则记录帧。这样做将向录制的文件添加声音和图像
  • iplImage和位图可以使用writeToBuffer和coppyFromBuffer函数轻松地相互转换。但要记住的是位图有4个通道与之关联,因此iplImage对象也应该是4通道的
  • 最后,关于图像过滤器,以下功能足以满足我的需要:
  • 平滑:cvSmooth(IplSrc,IplSrc,CV_GAUSSIAN,9,9,2,2)
  • 模糊:模糊=(int)(.05*IplSrc.width()); cvSmooth(IplSrc、IplSrc、CV_模糊、模糊)
  • 灰度:CVT颜色
  • 年份:CVD
  • 平滑:cvSmooth(IplSrc,IplSrc,CV_中值,13)
  • 对比度:cvInRangeS()