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

使用 cvtColor 轉換單一顏色

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

問題描述

我有一種顏色想要轉換為不同的顏色空間.是否可以直接在 cv::Vec3f 上使用 cvtColor 而無需創建 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;
}

我也試過這個,但得到一個不同的錯誤:

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 中有不同類型的源和目標,這會導致錯誤.

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;
}

<小時>

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


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

typedef Mat_<Vec3f> Mat3f;

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

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

相關文檔推薦

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++ 中旋轉圖像而不使用 OpenCV 函數)
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 無法設置 SVM 參數)
Easiest way to rotate by 90 degrees an image using OpenCV?(使用 OpenCV 將圖像旋轉 90 度的最簡單方法?)
主站蜘蛛池模板: 老司机午夜免费精品视频 | 激情久久久 | 成人性色生活片 | 精品视频在线观看 | 99视频精品| 伊人久久久| 国产一级在线观看 | 久久久麻豆 | 久久久麻豆 | 国产www在线观看 | 久久久久久久久国产 | av高清不卡 | 免费看黄色片 | 黄色天堂 | 国产性hd | 国产草草 | 日韩一级视频 | 日韩av网站在线观看 | 九九精品网 | 成人激情片 | h视频免费在线观看 | 天天插天天插 | 黄色一级在线观看 | 麻豆成人免费视频 | 亚洲香蕉视频 | 日韩av在线不卡 | 亚洲精品视频在线播放 | 一本色道久久综合亚洲精品小说 | 成人福利视频在线观看 | 色综合五月天 | 亚洲最新网址 | 色六月婷婷 | 69国产精品 | 中国黄色1级片 | 91精品看片 | 欧美日韩国产一区 | 性久久久久久 | 亚洲成人福利 | 欧美在线视频播放 | 国产精品一区二区在线播放 | 在线中文av |