怎么把图片数据保存为txt?

2025-10-24 22:10:16

1、对图片进行灰度化和二值处理:

a = cv2.imread('a.png')

b = cv2.cvtColor(a,cv2.COLOR_BGR2GRAY)

ret,c=cv2.threshold(b,200,255,cv2.THRESH_BINARY)

怎么把图片数据保存为txt?

2、改变图片大小:

c = cv2.resize(c,(30,30))

怎么把图片数据保存为txt?

怎么把图片数据保存为txt?

3、此时的c就是一个30*30的矩阵,把它写入到txt里面:

f = open("0.txt",'w')

for i in c:

    for j in i:

        f.write(str(j)+' \r')

    f.write('\n')

f.close()

很不整齐。

怎么把图片数据保存为txt?

4、为了看起来整齐划一,需要补齐数字:

f = open("1.txt",'w')

for i in c:

    for j in i:

        f.write(str(j).rjust(3)+' \r') #在每个数字左边填写空格,使之变成3位数

    f.write('\n')

f.close()

此时看起来就规整多了。

怎么把图片数据保存为txt?

5、还有,'\n'*2相当于执行两次换行。

f = open("36.txt",'w')

for i in c:

    for j in i:

        f.write(str(j).rjust(3)+' \r') #在每个数字左边填写空格,使之变成3位数

    f.write('\n') #每次输入完一行,就来两次回车

f.close()

怎么把图片数据保存为txt?

6、其实,里面不需要保留太大的数据,既然是二值图像,只需用0和1区分就行,于是,对c执行除法:

c = c/255

然后再保存为txt:

f = open("0.txt",'w')

for i in c:

    for j in i:

        f.write(str(j)+' \r')

    f.write('\n')

f.close()

结果成这样了。

图像c在执行出发之前不是二值图像吗?还真不是,原因是,因为图像在缩小的时候,出现插值。

怎么把图片数据保存为txt?

7、正确的做法是,先缩小图片,然后在进行灰度化和二值化处理。

但是效果还是不太好。

怎么把图片数据保存为txt?

怎么把图片数据保存为txt?

8、还需要把数据类型转化为整数型:

c = (c/255).astype(np.int8)

怎么把图片数据保存为txt?

9、要想把0和1的位置互换,需要:

c = 1-c

怎么把图片数据保存为txt?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢