欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenCV mask的作用及如何制作掩模mask

 更新時間:2023年02月16日 14:48:30   作者:Fshinech  
mask 不是馬斯克,是掩膜,可以用來遮蓋非感興趣區(qū),突出感興趣區(qū),使得圖像處理只專注于ROI部分,OpenCV中的很多函數(shù)用到mask,mask是什么?怎么制作一個mask?本文給大家分享OpenCV mask的作用及如何制作掩模mask,感興趣的朋友一起看看吧

前言

OpenCV中的很多函數(shù)用到mask,mask是什么?怎么作一個mask?將是本文的主要內(nèi)容。

一、mask是什么?

mask 不是馬斯克,是掩膜,可以用來遮蓋非感興趣區(qū),突出感興趣區(qū),使得圖像處理只專注于ROI部分。

二、OpenCV生成mask的幾種方法

注意:mask最終需要與要作用到的輸入圖像的尺寸與類型保持一致

矩形

#include <opencv2/opencv.hpp>

using namespace cv;

int main() {
  Mat src = imread("img1.png", IMREAD_GRAYSCALE);
  imshow("src", src);
  // 定義mask,大小640*480,像素全0
  Mat mask = cv::Mat::zeros(Size(640, 480), CV_8UC1);

  // 作一個從坐標(220,120),寬200,高200的矩形框,框內(nèi)填充白色,從方法1,2,3中任選一
  // 方法1
  rectangle(mask, cv::Rect(220, 120, 200, 200), Scalar(255), -1);
  // 方法2
  mask(cv::Rect(320, 50, 240, 310)) = 255;
  // 方法3
  mask(cv::Rect(320, 50, 240, 310)).setTo(255);
  
  Mat dst;
  // 將src中對應對應掩膜ROI中區(qū)域拷貝到dst
  src.copyTo(dst, mask);
  
  imshow("mask",mask);
  imshow("dst", dst);
  waitKey();
  
  return 0;
}

運行結(jié)果如下:

src

mask

dst

圓形

同理

#include <opencv2/opencv.hpp>

using namespace cv;

int main() {
  Mat src = imread("img1.png", IMREAD_GRAYSCALE);
  
  // 定義mask,大小640*480,像素全0
  Mat mask = cv::Mat::zeros(Size(640, 480), CV_8UC1);
  // 作一個以點坐標(320,50)為圓心,150為半徑的圓,圓內(nèi)填充白色
  circle(mask, Point(440, 205), 150, Scalar(255),-1);
  
  Mat dst;
  // 將src中對應對應掩膜ROI中區(qū)域拷貝到dst
  src.copyTo(dst, mask);
  
  imshow("mask",mask);
  imshow("dst", dst);
  waitKey();
  
  return 0;
}

mask

dst

mask可以是各種形狀,各式各樣,方法也有很多,這里只略舉一二。

總結(jié)

定義mask,設置ROI,將ROI內(nèi)部填充白色,其他填充黑色,即可對ROI區(qū)域操作,遮蓋其他區(qū)域。也可以將mask反轉(zhuǎn),遮蓋矩形框內(nèi)數(shù)據(jù),處理框外數(shù)據(jù)。

到此這篇關(guān)于OpenCV mask的作用及如何制作掩模mask的文章就介紹到這了,更多相關(guān)OpenCV mask掩模內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ipv6實現(xiàn)udp編程示例

    ipv6實現(xiàn)udp編程示例

    這篇文章主要介紹了ipv6實現(xiàn)udp編程示例,需要的朋友可以參考下
    2014-03-03
  • C++小練習之高性能實現(xiàn)字符串分割

    C++小練習之高性能實現(xiàn)字符串分割

    字符串分割是日常工作中比較常見的基礎函數(shù),通常大家會使用現(xiàn)成的基礎庫,基礎庫的性能是否是最佳的,本文主要和大家探討一下如何最大限度的提升字符串分割的性能,希望對大家有所幫助
    2023-10-10
  • C++初識類和對象

    C++初識類和對象

    類是創(chuàng)建對象的模板,一個類可以創(chuàng)建多個對象,每個對象都是類類型的一個變量;創(chuàng)建對象的過程也叫類的實例化。每個對象都是類的一個具體實例(Instance),擁有類的成員變量和成員函數(shù)
    2021-10-10
  • C++基礎知識實例解析(一)

    C++基礎知識實例解析(一)

    這篇文章主要對C++基礎知識實例解析,通過四個簡短的案例,鞏固大家的基礎知識,需要的朋友可以參考下
    2015-08-08
  • C語言中const和C++中的const 區(qū)別詳解

    C語言中const和C++中的const 區(qū)別詳解

    這篇文章主要介紹了C語言中const和C++中的const 區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Qt學習教程之對話框消失動畫效果

    Qt學習教程之對話框消失動畫效果

    這篇文章主要給大家介紹了關(guān)于Qt學習教程之對話框消失動畫效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • C/C++?Qt?TabWidget?實現(xiàn)多窗體創(chuàng)建詳解

    C/C++?Qt?TabWidget?實現(xiàn)多窗體創(chuàng)建詳解

    TabWidget組件配合自定義Dialog組件,可實現(xiàn)一個復雜的多窗體分頁結(jié)構(gòu)。這篇文章就主要介紹了如何通過TabWidget實現(xiàn)多窗體的創(chuàng)建,感興趣的小伙伴可以了解一下
    2021-12-12
  • C++基于QWidget和QLabel實現(xiàn)圖片縮放,拉伸與拖拽

    C++基于QWidget和QLabel實現(xiàn)圖片縮放,拉伸與拖拽

    這篇文章主要為大家詳細介紹了C++如何基于QWidget和QLabel實現(xiàn)圖片縮放、拉伸與拖拽等功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • C語言實現(xiàn)簡單掃雷小程序

    C語言實現(xiàn)簡單掃雷小程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單掃雷小程序,一款大眾類的益智小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C++ 實現(xiàn)哈希表的實例

    C++ 實現(xiàn)哈希表的實例

    這篇文章主要介紹了C++ 實現(xiàn)哈希表的實例的相關(guān)資料,這里使用C++實現(xiàn)哈希表的實例幫助大家徹底理解哈希表的原理,需要的朋友可以參考下
    2017-08-08

最新評論