gpt4 book ai didi

c++ - OpenCV 将黑色像素从一个垫子添加到另一个垫子。 C++

转载 作者:行者123 更新时间:2023-11-28 02:09:19 24 4
gpt4 key购买 nike

我正在尝试创建一个轮廓图像效果,它拍摄图像(或视频),找到轮廓,然后将它们作为黑线绘制在原始图像的顶部。我目前正在这样获取大纲:

Mat im = imread(...);
Mat outline;
cvtColor(im, outline, COLOR_BGR2GRAY);
GaussianBlur(outline, outline, Size(15,15),2,2);
Canny(outline, outline, 0, 30, 3);
bitwise_not(outline, outline);
cvtColor(outline,outline, COLOR_GRAY2BGR);

然后我将如何确保所有黑色像素都添加到 im 中?

最佳答案

您可以使用 setTo带着面具。

你应该这样做:

im.setTo(Scalar(0,0,0), ~outline);

意思是:在图像im中,将outline中所有黑色的像素设置为黑色(Scalar(0,0,0))


或者你可以避免使用bitwise_not,然后避免再次否定掩码。最终代码如下所示:

Mat im = imread(...);
Mat outline;
cvtColor(im, outline, COLOR_BGR2GRAY);
GaussianBlur(outline, outline, Size(15,15),2,2);
Canny(outline, outline, 0, 30, 3);

im.setTo(Scalar(0,0,0), outline);

// or
// bitwise_not(outline, outline);
// im.setTo(Scalar(0,0,0), ~outline);

imshow("Result", im);
waitKey();

关于c++ - OpenCV 将黑色像素从一个垫子添加到另一个垫子。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36309900/

24 4 0
文章推荐: c++ - 循环双向链表 - 段错误 : 11
文章推荐: debugging - 添加 Accordion 时,Mootools 'Uncaught TypeError: Property ' 对象 # 的容器不是函数'错误