zoukankan      html  css  js  c++  java
  • OpenCV YUV 与 RGB的互转(草稿)

    YUV 转 RGB

    cv::Mat yuvImg;

    /*
    //下面两行是我自己代码里用来构成YUV图像的数据,可以忽略

    yuvImg.create(pInput->height*3/2, pInput->width, CV_8UC1);
    memcpy(yuvImg.data, pInput->yuvPixels, pInput->width*pInput->height*3/2*sizeof(unsigned char));
    */

    cv::Mat rgbImg; cv::cvtColor(yuvImg, rgbImg, CV_YUV2RGB_I420); //函数第三个参数需要视YUV图像格式而定
    /*显示转化后的rgb图片*/
    cv::namedWindow("
    new_img", CV_WINDOW_NORMAL); //图像自适应大小,否者会因为图像太大,看不全
    cv::imshow(
    "new_img", rgbImg);
    cv::waitKey(
    0);
    cv::cvDestroyWindow("new_img");


    RGB 转 YUV

    //RBG转YUV
    Mat yuvImg;
    cvtColor(rgbImg, yuvImg, CV_RGB2YUV_I420); //函数第三个参数需要视YUV图像格式而定

    //这里注意,rgbImg的宽和高必须是2的倍数,否者会crash

    一、YUV420格式

    Y,后V,中间是U。其中的Y是w * h,U和V是w/2 * (h/2)

    如果w = 4,h = 2,则:

    yyyy

    yyyy

    uu

    vv

    内存则是:yyyyyyyyuuvv

    需要占用的内存:w * h * 3 / 2

    采样规律是:每个像素点都采样Y,寄数行采样1/2个U,不采样V,偶数行采样1/2个V,不采样U

  • 相关阅读:
    篝火晚会
    SECHS
    emmc4.X boot1 and boot2
    imx6Q Android7.1 Udisk Mount
    imx6Q 4.1.15 Perf support
    imx6Q 4.1.15 Kgtp support
    imx6Q 4.1.15 early console support
    imx6Q USB OTG Host/Device纯软件切换
    iMX6Q DDR Stresstest
    iMX6Q PowerSave调试
  • 原文地址:https://www.cnblogs.com/snailgardening/p/opencv_yuv_rgb.html
Copyright © 2011-2022 走看看