• 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

  • 相关阅读:
    合并果子
    在线最小值问题
    沙盒机制(sandBox)
    简单地址簿?
    浅拷贝、深拷贝
    NSFileManager、NSFileHandle
    NSDate、NSCalendar、NSDateFormatter
    归档
    类目、延展、协议
    动态类型
  • 原文地址:https://www.cnblogs.com/snailgardening/p/opencv_yuv_rgb.html
Copyright © 2020-2023  润新知