Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 Opencv,我有两个框架:cv::frame1 和 cv::frame2,当我检查它们的类型时,我得到:
frame1.type() is 16 frame2.type() is 21
我的问题是如何在不丢失数据的情况下将 frame2 的类型更改为 16?我试过 frame2.convertTo() 它没用。
任何想法 ?
据我了解,您希望将 CV_32FC3(3 通道浮点)类型的图像转换为 CV_8UC3(3 通道无符号字符)。这不能在不丢失一些信息的情况下完成:在第一种情况下,每个像素有 4 个字节,而在第二种情况下,每个像素有 1 个字节,所以你知道会有一些损失。
此代码用于转换为不同的类型,对我来说效果很好:
cv::Mat A = cv::Mat(480, 640, CV_32FC3, CV_RGB(1.0,1.0,1.0)); cv::Mat B; A.convertTo(B, CV_8UC3);