小编poc*_*cmo的帖子

Matcher Assertions失败错误opencv Android

我正在编写代码来从camerapreview中的drawable中找到类似的对象.我使用的是最新的Opencv 2.4.4.

下面是我的函数和logcat的输出.我得到这样的输出我做错了什么?

 public void detect_image (Mat mRgba) {

    object_desc = new Mat();
    scene_desc = new Mat();

    object_keys = new MatOfKeyPoint();
    scene_keys = new MatOfKeyPoint();

    matches = new MatOfDMatch();
    good_matches = new MatOfDMatch();

    Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.sto);
    Utils.bitmapToMat(image,object);   

    surf = FeatureDetector.create(FeatureDetector.FAST);
    surf.detect( object, object_keys );   
    surf.detect( mRgba, scene_keys);
    surfEX = DescriptorExtractor.create(DescriptorExtractor.BRIEF);
    surfEX.compute(object, object_keys, object_desc);       
    surfEX.compute(mRgba, scene_keys, scene_desc);
    dm = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_SL2);    
    dm.match(object_desc, scene_desc, matches);

    double max_dist = 0;
    double min_dist = 100;

    for( int i = 0; i < object_desc.rows(); …
Run Code Online (Sandbox Code Playgroud)

android opencv image-processing

17
推荐指数
1
解决办法
6181
查看次数

解码音频文件并重新编码为所需的PCM格式:44,100 kHz,2通道,16位

我想将音频文件解码为原始PCM数据,以将其流式传输到本地网络中的播放设备.我使用了引入API级别16 的新MediaExtractorMediaCodec类.该器件要求PCM数据为44,100 kHz,有2个通道和16位样本大小.只要输入文件大致符合这些要求,这就可以正常工作.但是,无论何时我正在解码使用的文件 - 例如 - 32,000 kHz的采样率并且可能只有一个通道,那么我无法从MediaCodec类获得所需的输出.

因为似乎无法指定MediaCodec类的输出格式.所以我决定实例化另一个MediaCodec对象,将原始数据重新编码为我想要的格式.根据Android 4.1 支持的媒体格式列表,Android支持编码到PCM/Wave.但是我无法创建编码为PCM/Wave的MediaCodec对象.我尝试将各种MIME类型传递给MediaCodec.createEncoderByType(type); 但我总是以IOException失败:

java.io.IOException: Failed to allocate component instance
at android.media.MediaCodec.native_setup(Native Method)
at android.media.MediaCodec.<init>(MediaCodec.java:210)
at android.media.MediaCodec.createEncoderByType(MediaCodec.java:194)
[..]
Run Code Online (Sandbox Code Playgroud)

有没有人能够成功创建编码为PCM/Wave的MediaCodec实例并且可以为我提供一个工作示例?

audio android pcm mediacodec mediaextractor

7
推荐指数
1
解决办法
4218
查看次数