[英]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.