cv2 写入图片成功 但是读取图片失败 int-float的坑

今天在读取png,在将png读入之后,想做一个/255并保存为.tif格式,出现大问题。

  1. 写入图片
import cv2 
import numpy  as np
from google.colab.patches import cv2_imshow

img =cv2.imread("/content/drive/MyDrive/mathcup/B/t1/107.png",2)# 1彩色2灰度
img=img/255
cv2.imwrite("/content/t1.tif",img,[int(cv2.IMWRITE_PNG_COMPRESSION), 0])
  1. 读取图片,这里报错
import pandas as pd
import numpy as np
import cv2
img =cv2.imread("/content/t1.tif")
print(img)#这里输出为None,没有读取到图片
img=np.array(img[:,:,0])
img=pd.DataFrame(img)
img.to_csv("/content/t0_test.csv")
  1. 写入以后,打开发现不是0,1写入的,如果是只有0,1写入,讲道理应该是全黑色的。
    在这里插入图片描述
  2. 经过持之以恒的排错,发现,这里存在问题
import pandas as pd
import numpy as np
import cv2

img =cv2.imread("/content/drive/MyDrive/mathcup/B/t1/107.png",2)
print(img.shape)
print(img.dtype)
print(img.min())
print(img.max())

img=img/255
print(img.shape)
print(img.dtype)
print(img.min())
print(img.max())


cv2.imwrite("/content/t1.tif",img,[int(cv2.IMWRITE_PNG_COMPRESSION), 0])
(500, 600)
uint8# 注意这里是int
0
255
(500, 600)
float64# 注意这里是浮点数
0.0
1.0
True
  1. 类型转换
img =cv2.imread("/content/drive/MyDrive/mathcup/B/t1/107.png",2)
print(img.shape)
print(img.dtype)
print(img.min())
print(img.max())

img=img/255
img=np.array(img).astype(int)# 类型转换为int
print(img.shape)
print(img.dtype)
print(img.min())
print(img.max())


cv2.imwrite("/content/t1.tif",img,[int(cv2.IMWRITE_PNG_COMPRESSION), 0])
(500, 600)
uint8
0
255
(500, 600)
int64
0
1
True

成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值