簡體   English   中英

C ++ | 使用setTo更改cv :: mat中的顏色

[英]C++ | Change color in cv::mat with setTo

我有一個帶有vec3b值的cv :: Mat文件。 這些值是圖像中的顏色。 我想改變那張圖片中的一些顏色。

我知道正常矩陣操作的setTo()函數,但我如何將它用於我的Mat文件?

我試過這樣的事情:

 image = image.setto(Vec3b(0,0,0), image == Vec3b(255,0,0))

謝謝!

給定圖像image ,我們想要找到image中等於Scalar(255,0,0)所有像素,然后將這些像素設置為Scalar(0,0,0)

  • 首先,我們需要獲取mask ,如果image的相應位置等於Scalar(255,0,0) ,則mask中的位置設置為255,否則設置為0.這可以使用inRange()函數來實現。

     Mat mask; inRange(image, Scalar(255,0,0), Scalar(255,0,0), mask); 
  • 現在將setTo()函數應用於image

     image.setTo(Scalar(0,0,0), mask); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM