我有一个由double构成的矩阵(Mat),范围是[0,1]。 当我通过命令imwrite保存它时,生成的图像是全黑的。 我想这个问题是一个铸造问题,但我不知道如何解决它。 感谢Opencv:用imwrite保存双矩阵
0
A
回答
1
你得到的全黑图像是因为所有的图像像素范围内[0,1]
(实际上为0或保存图像时,1),这是接近全黑(无论是灰度图像或彩色图像)。
要保存矩阵到的图像与正常颜色,必须先变换矩阵双由255
每个值乘以范围[0, 255]
。如果稍后通过将每个值除以255
来加载此图像中的矩阵,请记住将其转换回来。
+1
我认为你必须做一个'convertTo(converted_Mat,CV_8U或CV_16U,255或65535)'也有类型适当的设置。 – mb84
1
OpenCV存储双精度数组而不将它们转换为其他格式(以及丢失信息)的唯一方法是使用FileStorage。 imwrite仅限于'char'或'short'的数组。
相关问题
- 1. OpenCV imwrite保存黑色PNG
- 2. imwrite在MATLAB中的双重矩阵
- 3. 从OpenCV(C++)为Matlab保存双精度矩阵
- 4. OpenCV imwrite保存完整的黑色jpeg
- 5. 从OpenCV保存/读矩阵FileNodeIterator
- 6. 保存阵列图像,imwrite matlab的
- 7. 分配一个双矩阵CvMat opencv
- 8. 如何读取使用std :: ofstream保存的OpenCV矩阵数据?
- 9. 如何在OpenCV 2.4.3中保存(cvWrite或imwrite)图像?
- 10. 使用旋转矩阵opencv
- 11. OpenCV通过子矩阵改变矩阵
- 12. opencv:创建矩阵或向量矩阵
- 13. OpenCV矩阵创建
- 14. OpenCV:将帧矩阵保存到文本文件(Python)
- 15. OpenCV C++摄像头图像未保存到矩阵
- 16. opencv矩阵到共享内存
- 17. 保存图像使用imwrite MATLAB
- 18. 保存混淆矩阵
- 19. 保存文本矩阵:MATLAB
- 20. 保存矩阵的错误
- 21. OpenCV imwrite不写图像
- 22. opencv 3.1 wxwidgets cv :: imwrite error
- 23. opencv imread/imwrite损失颜色
- 24. 将双精度矩阵保存为图像
- 25. OpenCV无法使用imwrite写入图像
- 26. 图像类型转换用的OpenCV imwrite
- 27. OpenCV中的Homography矩阵
- 28. 查找OpenCV的矩阵
- 29. Opencv矩阵值显示
- 30. opencv:矩阵分配混淆
尝试'cv :: imwrite(filename,yourmatrix * 255)' 否则请查看http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imwrite#imwrite,因为有些文件扩展名只允许有限的数据类型。 – Micka