【问题标题】:Android camera preview remove green screen?Android相机预览删除绿屏?
【发布时间】:2017-03-11 05:23:35
【问题描述】:

用户将使用前置摄像头,墙上有一块绿布(彩色背景)

如何访问预览数据并对其进行更改:删除带有容差的选定颜色?防爆绿色,公差 65%

@Override
public void onPreviewFrame(final byte[] data, Camera camera) {
    Camera.Parameters parameters = camera.getParameters();
    int width = parameters.getPreviewSize().width;
    int height = parameters.getPreviewSize().height;

    YuvImage yuv = new YuvImage(data, parameters.getPreviewFormat(), width, height, null);

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    yuv.compressToJpeg(new Rect(0, 0, width, height), 50, out);

    byte[] bytes = out.toByteArray();
    final Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

    MyActivity.this.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            ((ImageView) findViewById(R.id.loopback)).setImageBitmap(bitmap);
        }
    });
}

http://jylee-world.blogspot.ro/2014/12/a-tutorial-of-androidhardwarec

我们需要简单的教程。即使在 http://developer.android.com.

【问题讨论】:

  • 你有没有尝试过任何代码
  • @sohail 绝对没用的评论

标签: android image-processing camera video-processing


【解决方案1】:

使用 Bitmap.getPixel(int x, int y) 获取每个像素的颜色并使用 bitmap.setPixel() 将颜色更改为您喜欢的颜色

int pixel = bitmap.getPixel(x,y);
int R = Color.red(pixel);
int G = Color.blue(pixel);
int B = Color.green(pixel);

if G == //(range of green values)
    bitmap.setPixel(x, y, color)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多