我正在使用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);
}
}
}
//然后是结果!
是否有其他方法可以在没有延迟或问题的情况下进行浏览?
谢谢你们!
答案 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);
}