gpt4 book ai didi

c++ - 如何在cv::Mat的一部分中设置零值

转载 作者:行者123 更新时间:2023-12-02 17:16:03 26 4
gpt4 key购买 nike

我有一个RGB图像的cv::Mat作为

cv::Mat cv_img 
我想在某些位置为cv_img设置零值。例如,从图像的底部到一半位置将被零值填充。我该如何在C++和OpenCV中做到这一点?谢谢大家
我已经搜索了setTo函数,并且 mask可能是候选解决方案,但是如何定义二进制掩码对我来说却很困难。
cv_img.setTo(Scalar(0,0,0), mask);

最佳答案

您可以通过将像素设置为所需的值来实现。只需定义roi(感兴趣区域的间隔)即可。
这是一个简单的代码来指导:

#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
Mat img = imread("/ur/img/dir/img.jpg");

for(int i=img.rows/2; i<img.rows;i++)
{
for(int j=0; j<img.cols; j++)
{
img.at<Vec3b>(Point(j,i))[0] = 0;
img.at<Vec3b>(Point(j,i))[1] = 0;
img.at<Vec3b>(Point(j,i))[2] = 0;

}
}

imshow("Result",img);
waitKey(0);

return 0;
}

关于c++ - 如何在cv::Mat的一部分中设置零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64635125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com