久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用 cvtColor 轉(zhuǎn)換單一顏色

Convert a single color with cvtColor(使用 cvtColor 轉(zhuǎn)換單一顏色)
本文介紹了使用 cvtColor 轉(zhuǎn)換單一顏色的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我有一種顏色想要轉(zhuǎn)換為不同的顏色空間.是否可以直接在 cv::Vec3f 上使用 cvtColor 而無需創(chuàng)建 1x1 cv::Mat 并用該像素填充它,使用cvtColorcv::Mat 上,然后從輸出中獲取唯一的像素?我嘗試了以下方法,但似乎不喜歡傳遞向量.

I have a color that I want to convert to a different color space. Is it possible to use cvtColor on a cv::Vec3f directly without creating a 1x1 cv::Mat and populating it with that pixel, using cvtColor on the cv::Mat, then getting the only pixel out of the output? I have tried the following, but it doesn't seem to like getting passed a vector.

有什么建議嗎?

#include <iostream>

#include <opencv2/opencv.hpp>

int main(int, char*[])
{
    cv::Vec3f hsv;
    hsv[0] = .9;
    hsv[1] = .8;
    hsv[2] = .7;

    std::cout << "HSV: " << hsv << std::endl;

    cv::Vec3b bgr;
    cvtColor(hsv, bgr, CV_HSV2BGR); // OpenCV Error: Assertion failed (scn == 3 && (dcn == 3 || dcn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor

    std::cout << "BGR: " << bgr << std::endl; 

    return EXIT_SUCCESS;
}

我也試過這個(gè),但得到一個(gè)不同的錯(cuò)誤:

I also tried this, but get a different error:

#include <iostream>

#include <opencv2/opencv.hpp>

int main(int, char*[])
{
    cv::Mat_<cv::Vec3f> hsv(cv::Vec3f(0.7, 0.7, 0.8));

    std::cout << "HSV: " << hsv << std::endl;

    cv::Mat_<cv::Vec3b> bgr;

    cvtColor(hsv, bgr, CV_HSV2BGR); // OpenCV Error: Assertion failed (!fixedType() || ((Mat*)obj)->type() == mtype) in create

    std::cout << "BGR: " << bgr << std::endl;

    return EXIT_SUCCESS;
}

推薦答案

您的第二種方法是正確的,但是您在 cvtColor 中有不同類型的源和目標(biāo),這會(huì)導(dǎo)致錯(cuò)誤.

Your second approach is correct, but you have source and destination of different types in cvtColor, and that causes the error.

確保 hsvbgr 的類型相同,CV_32F 在這里:

Be sure to have both hsv and bgr of the same type, CV_32F here:

#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
    cv::Mat3f hsv(cv::Vec3f(0.7, 0.7, 0.8));

    std::cout << "HSV: " << hsv << std::endl;

    cv::Mat3f bgr;
    cvtColor(hsv, bgr, CV_HSV2BGR); 

    std::cout << "BGR: " << bgr << std::endl;

    return 0;
}

<小時(shí)>

為了簡潔起見,您可以使用 Mat3f.這只是一個(gè)類型定義:


You can use Mat3f for brevity. It's just a typedef:

typedef Mat_<Vec3f> Mat3f;

這篇關(guān)于使用 cvtColor 轉(zhuǎn)換單一顏色的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Assertion failed (size.widthgt;0 amp;amp; size.heightgt;0)(斷言失敗(size.width0 amp;amp; size.height0))
Rotate an image in C++ without using OpenCV functions(在 C++ 中旋轉(zhuǎn)圖像而不使用 OpenCV 函數(shù))
OpenCV: process every frame(OpenCV:處理每一幀)
Why can#39;t I open avi video in openCV?(為什么我不能在 openCV 中打開 avi 視頻?)
OpenCV unable to set up SVM Parameters(OpenCV 無法設(shè)置 SVM 參數(shù))
Easiest way to rotate by 90 degrees an image using OpenCV?(使用 OpenCV 將圖像旋轉(zhuǎn) 90 度的最簡單方法?)
主站蜘蛛池模板: 日韩成人在线观看 | 羞羞视频在线观看 | 午夜成人在线视频 | 成人精品一区二区 | 久久伊人在| 国产精品视频网 | 国产日韩精品视频 | 91社区视频 | 欧美自拍第一页 | 四虎最新视频 | 欧美一区二区三区高清视频 | 91久久精品国产91久久性色tv | 日韩欧美国产精品综合嫩v 一区中文字幕 | 国产在线观看一区二区三区 | 中文字幕日本一区二区 | 国产精品高潮呻吟久久 | 久久av一区二区三区 | 99久久精品免费看国产高清 | 久久久久久久国产精品 | 成人黄色在线 | 天天干狠狠操 | 日本精品裸体写真集在线观看 | 亚洲狠狠| 亚洲视频一区二区三区 | 二区国产 | 日韩在线视频一区 | 99成人免费视频 | 国产成人精品一区二区三区四区 | 天天插日日操 | 亚洲视频免费在线观看 | 欧美成视频| 中文一区| 伦理片97 | 91免费观看在线 | 国产成人综合久久 | 成人国产精品 | 国产十日韩十欧美 | 亚洲午夜精品 | 亚洲日韩中文字幕一区 | 天堂综合| 亚洲精品视频一区 |