org.openpnp

opencv

3.4.2-1

安装

为了支持java需要先yum install ant

wget https://github.com/opencv/opencv/archive/3.4.2.zip

$cd opencv

$madir build

$cd build

$cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..

$cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..

$cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF ..

$cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

$make

$sudo make install

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

byte[] bytes = FileUtils.readFileToByteArray(new File("./20200408180400133_FR_0.yuv"));

Mat img1 = new Mat(1080 , 1920, CvType.CV_8UC2); System.out.println(img1.width());

System.out.println(img1.height());

System.out.println(img1.channels());

img1.put(0, 0, bytes);

Mat img2 = new Mat(1080, 1920, CvType.CV_8UC3);

Imgproc.cvtColor(img1, img2, Imgproc.COLOR_YUV2BGR_YUY2);

Imgcodecs.imwrite("./20200408180400133_FR_0.jpg", img2);

C++

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

using namespace cv;

void yuv2jpg(string inputFileName, string savepath,int width,int height,int yuv2jpg_type)

{

int iImageSize = width * height * 2;

FILE * fpln = fopen(inputFileName.data(), "rb+");

if (fpln == NULL) {

printf("read yuv error.\n");

return;

}

cv::Mat yuvImg;

cv::Mat rgbImg(height, width, CV_8UC3);

yuvImg.create(height, width, CV_8UC2);

unsigned char *pYUVbuf = new unsigned char[iImageSize];

fread(pYUVbuf, iImageSize * sizeof(unsigned char), 1, fpln);

memcpy(yuvImg.data, pYUVbuf, iImageSize * sizeof(unsigned char));

cv::cvtColor(yuvImg, rgbImg, 116);

imwrite(savepath, rgbImg);

fclose(fpln);

}

int main() {

string yuv = "F:/pop2pop/p3/20200408180400133_FR_0.yuv";

yuv2jpg(yuv, "F:/pop2pop/p3/20200408180400133_FR_0.jpg",1920,1080,116);

return 0;

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐