OpenCV - Android - 设置像素值的低延迟相机预览

时间:2014-07-24 09:52:15

标签: android opencv camera set pixel

我正在使用Android版本的OpenCV,它是一个RGB Mat,当我尝试设置新的像素值为2'时,用于浏览相机预览。相机显示屏滞后。

我的目标是使用标准蓝色颜色更改靠近红色的像素值。当我试图专注于这个问题时,我注意到它是浏览显示效果滞后的结果。

上面,我的浏览代码包含:

for (int i=0; i<480; i++)
        {
            for (int j=0; j<720; j++)
            {          

                int red = (int) rgba.get(j,i)[0];
                int green = (int) rgba.get(j,i)[1];
                int blue = (int) rgba.get(j,i)[2];

                Log.v(TAG, "RED=" + red);
                if(red <= 50){
                    rgba.put(j, i, 0, 0, 255, 0);
                }

            }
        }

//然后是结果!

是否有其他方法可以在没有延迟或问题的情况下进行浏览?

谢谢你们!

1 个答案:

答案 0 :(得分:0)

这是一个C ++实现。您可以使用Java自己编写一个或使用本机代码。

#include "opencv2/highgui/highgui.hpp"
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>

using namespace cv;
using namespace std;

int main(int argc, char* argv[]) {
    Mat img = imread(argv[1]);
    Mat lut(1, 256, CV_8UC3);

    for(int i=0; i<256; i++) {
        if (i <= 50) {
            lut.at<Vec3b>(i) = Vec3b(255, 0, 0); // bgr
        } else {
            lut.at<Vec3b>(i) = Vec3b(i, i, i);
        }
    }

    Mat retVal;
    LUT(img, lut, retVal);

    imshow("img", img);
    imshow("retVal", retVal);

    waitKey(0);
}