Opencv 常用方法

主要是处理
二维数组和cv::mat得相互转换

opencv中cv::Mat就是一个holder memory得对象, 支持ref count。
如需要copy, 则需要clone, 直接赋值只是增加了holder 内部得ref count;
如果api 支持in-place, 则src/out可以是同一个mat, 否则讲src 作为out, src得data holder memory 会被reset;

BGR CPU 转NV21 方法:

 void bgr2yuvnv21(const unsigned char *__restrict__ src,
                                unsigned char *__restrict__ dst, int image_width,
                                int image_height) {
            int nv21_len = image_width * image_height;
            int y, u, v;
            for (int i = 0; i < image_height; i++) {
                for (int j = 0; j < image_width; j++) {
                    int curIndex = i * image_width + j;
                    int currentB = src[curIndex * 3 + 0];
                    int currentG = src[curIndex * 3 + 1];
                    int currentR = src[curIndex * 3 + 2];

                    y = ((77 * currentR + 150 * currentG + 29 * currentB + 128) >> 8) + 0;
                    u = ((-43 * currentR - 84 * currentG + 127 * currentB + 128) >> 8) + 128;
                    v = ((127 * currentR - 106 * currentG - 21 * currentB + 128) >> 8) + 128;

                    dst[i * image_width + j] = (uint8_t) clamp(y, 0, 255);
                    dst[nv21_len + (i >> 1) * image_width + (j & ~1) + 0] = (uint8_t) clamp(v, 0, 255);
                    dst[nv21_len + (i >> 1) * image_width + (j & ~1) + 1] = (uint8_t) clamp(u, 0, 255);
                }
            }
        }

使用opencv 在绘制矩形

//使用cv::imread或是直接实例化一个mat
          cv::Mat mask(size, CV_8UC3,cv::Scalar(0,0,0));
//绘制矩形, FILLED
            cv::rectangle(mask, lt, rb, cv::Scalar(255, 255, 255), cv::LineTypes::FILLED, 4, 0);
//将其转为灰度, 8UC1
            cv::Mat out_mask(size, CV_8UC1);
            cv::cvtColor(mask, out_mask, cv::COLOR_RGB2GRAY);

Opencv 生成随机噪声

cv::Mat img = cv::Mat::zeros(size, CV_8UC4);
            cv::randu(img, cv::Scalar::all(0), cv::Scalar::all(255));

Opencv 讲YUV 转成BGR

//NV21,420SP格式
 cv::Mat out_data(height * 1.5, width, CV_8UC1, yuv_data.get());
                        cv::Mat rgb_out;
                        cv::cvtColor(out_data, rgb_out, cv::COLOR_YUV2BGR_NV21);
                        cv::imwrite(outFilename.str().c_str(), rgb_out);

Opencv 将Y UV 分离格式转为BGR

            cv::Mat yuv_data(height * 1.5, width, CV_8UC1);
            cv::Mat y_data(height, width, CV_8UC1, input_frame.buffer.data.get());
            cv::Mat uv_data(height * 0.5f, width, CV_8UC1,
                            input_frame.buffer.data.get() + width * height);
            cv::Mat input[] = {y_data, uv_data};
            cv::vconcat(input, 2, yuv_data);
            cv::cvtColor(yuv_data, result, cv::COLOR_YUV2BGR_NV21);

About: kiah


151 thoughts on “Opencv 常用方法”

  1. Howdy very cool site!! Man .. Excellent .. Amazing .. I will bookmark your
    blog and take the feeds also?I am glad to search out a lot of useful information here within the post, we need develop extra techniques in this regard,
    thank you for sharing.

    Have a look at my blog; fios promo codes (Shasta)

  2. I carry on listening to the rumor speak about getting boundless online grant applications so I have been looking around for
    the most excellent site to get one. Could you advise me please,
    where could i acquire some?

    My blog; home business ideas (Lowell)

  3. Good post but I was wanting to know if you could
    write a litte more on this subject? I’d be very thankful if you could elaborate a
    little bit more. Appreciate it!

    Feel free to visit my site; bread store coupons (Anne)

  4. Интернет-магазин продает дизайнерскую мебель личного производства по привлекательным ценам. В случае если не желаете приобретать стандартные мебельные гарнитуры, а желаете подобрать модели определенного стиля, которые будут гармонично сочетаться и станут украшением любого помещения, тогда загляните в каталог онлайн-магазина.
    Вы сможете подобрать мебель:
    · для гостиной,
    · столовой,
    · спальни,
    · прихожей,
    · кабинета.
    Мебель бренда авторского исполнения делается в различных стилях. Покупатели могут подобрать дизайнерские мебельные комплекты для комнат, выполненных в традиционном, скандинавском стиле, провансе, арт-деко, модерне, минимализме.

    Помимо столов, стульев, шкафов, консолей и прочей мебели на портале компании «Эксив» вы можете подобрать дизайнерские предметы декора, которые дополнят интерьер и дадут помещению особенность. Зеркала, люстры, торшеры, бра, светильники можно подобрать для каждой комнаты, прихожей, лоджии, террасы, напольные зеркала https://farming-mods.com/.
    Предметы мебели делаются из натуральных по максимуму материалов с высококачественной фирменной фурнитурой. Для обивки мягкой мебели используются: велюр, натуральная и экокожа, рогожка, нубук, микровельвет, шенил. Каркас изготавливается из массива дерева.
    Как можно сделать заказа в онлайн-магазине бренда Exiv
    В ассортименте вы сможете подобрать готовые изделия и заказать изготовление мебели подходящей для вас конфигурации по индивидуальным размерам. При этом у вас будет возможность кроме этого подобрать цвет материала отделки.
    Окончательная цена выбранной вами мебели, изготовленной на заказ, будет зависеть от материала и размеров. Для того чтобы узнать стоимость, позвоните менеджеру по телефонам, обозначенным на веб-сайте. По заказу мебель изготавливается в среднем в течение 2-3 недель. Помимо этого вы можете забронировать на 5 дней понравившиеся предметы, которые будут отложены специально для вас до оплаты.
    Заказать товары в компании «Эксив» можно с доставкой по Москве, Подмосковью и отправкой транспортными компаниями во все регионы России. Стоимость доставки по Москве – 1000 р. Для того чтобы узнать стоимость доставки в другие города, позвоните консультанту либо задайте вопрос в форме обратной связи.
    Оплата возможна курьеру при получении заказа наличными или банковской картой. Также вы можете оплатить товар на сайте или по безналичному расчету. Если заказ отправляется в регионы, необходимо полная предоплата.

  5. Интернет-магазин продает дизайнерскую мебель собственного производства по привлекательным ценам. Если не желаете покупать стандартные мебельные гарнитуры, а желаете подобрать модели определенного стиля, которые будут гармонично сочетаться и станут украшением любого помещения, тогда загляните в каталог онлайн-магазина.
    Вы можете подобрать мебель:
    · для гостиной,
    · столовой,
    · спальни,
    · прихожей,
    · кабинета.
    Мебель бренда авторского исполнения изготавливается в различных стилях. Покупатели могут выбрать дизайнерские мебельные комплекты для комнат, выполненных в традиционном, скандинавском стиле, провансе, арт-деко, модерне, минимализме.

    Помимо столов, стульев, шкафов, консолей и прочей мебели на интернет-сайте компании «Эксив» вы можете подобрать дизайнерские предметы декора, которые дополнят интерьер и дадут помещению индивидуальность. Зеркала, люстры, торшеры, бра, светильники можно выбрать для каждой комнаты, прихожей, лоджии, террасы, напольные зеркала https://farming-mods.com/.
    Предметы мебели изготавливаются из натуральных по максимуму материалов с высококачественной фирменной фурнитурой. Для обивки мягкой мебели используются: велюр, натуральная и экокожа, рогожка, нубук, микровельвет, шенил. Каркас делается из массива дерева.
    Как можно сделать заказа в онлайн-магазине бренда Exiv
    В каталоге вы сможете подобрать готовые изделия и заказать изготовление мебели нужной для вас конфигурации по индивидуальным размерам. При этом у вас будет возможность кроме этого выбрать цвет материала отделки.
    Окончательная стоимость выбранной вами мебели, изготовленной на заказ, будет зависеть от материала и размеров. Для того чтобы узнать цену, позвоните менеджеру по телефонам, обозначенным на сайте. По заказу мебель изготавливается в среднем в течение 2-3 недель. Кроме этого можно забронировать на 5 дней понравившиеся предметы, которые будут отложены специально для вас до оплаты.
    Заказать товары в фирмы «Эксив» можно с доставкой по Москве, Подмосковью и отправкой транспортными компаниями во все регионы Рф. Цена доставки по Москве – 1000 р. Чтобы узнать стоимость доставки в другие города, позвоните консультанту либо задайте вопрос в форме обратной связи.
    Оплата возможна курьеру при получении заказа наличными либо банковской картой. Кроме этого вы можете оплатить товар на портале или по безналичному расчету. В случае если заказ отправляется в регионы, требуется полная предоплата.

  6. Usually I do not read article on blogs, however I wish to say that this write-up very
    forced me to check out and do so! Your writing taste has been surprised me.
    Thanks, quite nice article.

    My web-site :: free pmp practice exam (dcshru.ru)

  7. I would like to thank you for the efforts you have put in writing this website.
    I am hoping the same high-grade website post from you in the upcoming also.
    In fact your creative writing skills has inspired me to get
    my own site now. Actually the blogging is spreading its wings fast.
    Your write up is a great example of it.

    my web site – groceries shopping online – Fermin,

  8. I simply wanted to appreciate you again. I do not know the things I
    would’ve handled without the actual suggestions shown by you relating to my problem.
    Previously it was an absolute troublesome circumstance in my opinion, but taking a look at the expert
    strategy you dealt with the issue took me to weep with
    contentment. Now i am thankful for this service and in addition expect you find out
    what a great job you are doing instructing the mediocre ones thru a
    site. I am certain you have never met all of us.

    Also visit my website :: microsoft certification training (Nelle)

  9. Appreciation to my father who informed me regarding this
    blog, this weblog is actually amazing.

    Also visit my web site; microsoft certification books – Ernie

  10. I pay a visit everyday a few web pages and sites to read posts, however
    this webpage offers quality based posts.

    My web page … elective exam (Eula)

  11. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  12. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  13. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  14. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  15. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  16. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  17. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  18. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  19. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  20. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  21. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  22. I precisely needed to say thanks once more. I do not know the
    things that I could possibly have sorted out without the actual information discussed by you regarding such
    theme. It actually was a intimidating condition in my view,
    however , observing your expert mode you resolved that
    forced me to leap over contentment. I am just happy for this assistance and in addition believe you comprehend what a
    powerful job that you’re providing instructing people today using your webblog.
    Most likely you have never come across any of us.

    Also visit my webpage; pass microsoft cer (Ferne)

  23. always i used to read smaller articles which also clear their motive, and that is also happening with this post which I
    am reading now.

    My blog: exam strategies (Johanna)

  24. Hi! I’ve been reading your site for a long time now and finally got the bravery to go ahead and give you
    a shout out from Kingwood Tx! Just wanted to tell
    you keep up the good work!

    my site pmp certification questions (Suzette)

  25. continuously i used to read smaller posts that also clear their motive, and that is also happening with this post which I am reading here.

    Review my web site; pmp exam questions (Avis)

  26. Джошуа-Усик: объявлен состав пар андеркарда. Поделиться: Лоуренс Околи. 26 Августа 2021, 10:38. Организаторы вечера бокса 25 сентября в Лондоне (Англия), главным событием которого станет бой между Джошуа Усик дивитися онлайн Усик Джошуа – промоутер прокоментував важливість бою для

  27. Ковалев про бой Усик – Джошуа. Бывший чемпион мира в полутяжелом весе Сергей Ковалев отреагировал на анонс боя между тяжеловесом Александром Усиком (18-0, 13 КО) и чемпионом WBA, WBO и IBF Энтони Джошуа Усик дивитися онлайн Усик Джошуа — коли бій — де дивитися — прогноз букмекерів

发表评论

电子邮件地址不会被公开。