gpt4 book ai didi

c++ - 从 OpenCV 的 VideoCapture 获取的图像与标量之间的整数除法

转载 作者:太空狗 更新时间:2023-10-29 21:35:28 24 4
gpt4 key购买 nike

我使用的是 OpenCV 3.2 版本。

我打开默认摄像头:

VideoCapture cap;
cap.open(0);

并抓取当前帧:

Mat frame;
cap.read(frame);

现在我想减少图像中显示的颜色数量。因此,我进行了一次整数除法,并将图像乘以相同的标量值,例如设为 10。这可以通过 C++ 运算符的重载轻松完成。

Mat processedFrame = (frame / 10) * 10

但是,frame 值是 float 格式。然后除法不是作为整数除法执行的,并且没有实现颜色的减少。

我想这可以通过在进行整数除法之前将 frame 转换为整数值来解决。考虑到相机可以在 1 个(灰度级)或 3 个(BGR)颜色 channel 中抓取图像,我该如何进行此类型转换?

最佳答案

OpenCV 也提供了乘法和除法的 API。您可以使用该 API 来获得所需的结果,而不是像这样使用重载运算符:

// Assuming the image to be RGB 
cv::divide(frame, cv::Scalar(10, 10, 10), frame, 1, CV_8UC3);
cv::multiply(frame, cv::Scalar(10, 10, 10), frame, 1, CV_8UC3);

关于c++ - 从 OpenCV 的 VideoCapture 获取的图像与标量之间的整数除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42318970/

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