久久久久久久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 | 国产精品不卡视频 | 日日夜夜操天天干 | 国产ts人妖一区二区三区 | 国产在线一区二区三区 | 日本三级日产三级国产三级 | 九九av| 日韩精品视频在线免费观看 | 婷婷国产一区 | 日日骑 | 一区二区在线看 | 欧美高清成人 | 欧美综合国产精品久久丁香 | 日韩激情网 | 亚洲永久 | 欧美一级艳情片免费观看 | 亚洲精彩免费视频 | 亚洲精品国产偷自在线观看 | aaaa一级毛片 | 欧美日韩不卡合集视频 | 欧美日本一区二区 | 精品中文字幕久久 | 成人一区在线观看 | 亚洲欧美综合精品另类天天更新 | 亚洲一区视频在线 | 日本亚洲欧美 | 国产电影一区二区 | 日韩精品一区中文字幕 | 成人av一区二区三区 | 狠狠操天天操 | 欧美中文字幕一区二区三区亚洲 | 一级做受毛片免费大片 | 永久av| 久久久网| 天天草草草 | 久久午夜电影 | 中文字幕一区二区三区四区五区 | 国产999精品久久久影片官网 | 99在线精品视频 | 91国内在线观看 |