gpt4 book ai didi

c++ - 使用 openCV convertTo 来改变图像位深度似乎是 "corrupt"的图像?

转载 作者:行者123 更新时间:2023-12-02 10:18:31 30 4
gpt4 key购买 nike

我有这个cv::Mat image CV_16SC3 类型(16 位有符号,3 个 channel )。使用前convertTo将其深度从 16 位更改为 8 位,图像如下所示:

enter image description here

我需要使图像成为这种类型:CV_8UC3。尝试通过以下方式转换它:

image.convertTo(image, CV_8U, 0.00390625);

( source)

但是,它在此处产生了此图像:
enter image description here

任何想法为什么会这样以及如何解决它?

最佳答案

如果您查看 OpenCV documentationcv::convertTo函数,用于计算像素值的公式是:

m(x,y) = staturate_cast<rType>(alpha (*this)(x, y) + beta)

这意味着像素值乘以 alpha并添加了 beta (默认为 0)。
您的 alpha值非常低( alpha = 0.00390625)。这就是您看到黑色图像的原因。尝试为 alpha 使用更大的值.例如,您可以使用 alpha = 0.7 ,或者您可以使用默认值 1。

关于c++ - 使用 openCV convertTo 来改变图像位深度似乎是 "corrupt"的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61124404/

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