如何在Java中对图像进行去隔行扫描?

时间:2012-09-12 08:21:56

标签: java filter xuggle

我正在使用Xuggle来播放来自ip-camera的隔行视频,并且确实需要deinterlace选项,它存在于FFMpeg中(Xuggle是一个基于FFMpeg库的java包装器)。

不幸的是,Xuggle没有公开deinterlace选项(“-vf yadif”,如果我没有错)。所以,我对Java BufferedImage反隔行扫描的纯java解决方案感兴趣,或者使某些方法让Xuggle这样做。

现在我简单地复制奇数行甚至丢弃。它很快但质量当然不是很好。

// Interlaced image
BufferedImage img = (BufferedImage) event.getImage();

//duplicate odd lines
WritableRaster raster = img.getRaster();
for (int i = 0; i < raster.getHeight(); i += 2) {
    int[] arr2  = null;
    raster.setPixels(0, i + 1, raster.getWidth(), 1, 
            raster.getPixels(0, i, raster.getWidth(), 1,arr2));
}    
//now img is deinterlaced

有人可以在这方面帮助我吗?

1 个答案:

答案 0 :(得分:0)

我通过JNI使用了FFMPEG的yadif过滤器。 Java实现非常缓慢。