栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

opencv imwrite图片保存为黑色

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

opencv imwrite图片保存为黑色

imshow能显示,但imwrite保存后就是一个黑图,那就看一下前后图片的数组信息。

  • 原图
img6 = cv2.rotate(obj1,cv2.ROTATE_180)#顺时针旋转180度
plt.imshow(img6,cmap='gray')
#img6
[[2.93929499e-20 2.93929499e-20 2.96123003e-20 ... 3.33412566e-20
  3.33412566e-20 3.33412566e-20]

此时的img6已经是小数点后18位的数了,直接进行cv2,imwrite的时候,会将数值取整,最终保存的为一个全零数组,显示为黑色。cv2,imwrite的保存类型为uint8,0-255的整型,因此需要在保存前进行数值提升

cv2.imwrite('./img6.png',img6*10**19*255)
print(img6*10**19*255)
[[ 74.95202225  74.95202225  75.5113657  ...  85.02020435  85.02020435
   85.02020435]

这样再进行读取就没有问题了,0-1归一化的数值同理,提升到0-255即可

obj2 = cv2.cv2.imread('./img6.png',0)
plt.imshow(obj2,cmap='gray')
uint8
[[ 75  75  76 ...  85  85  85]
 [ 75  75  76 ...  85  85  85]
 [ 75  75  76 ...  85  85  85]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300698.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号