Pluto实践学习

Pluto实践学习(一)

Matlab转换图片为二进制文件并读取验证

使用的Matlab函数(仅考虑此次用法)

  • imread
    官方文档:A = imread(filename) 从 filename 指定的文件读取图像,并从文件内容推断出其格式。如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像。
    说白了就是读取图片文件不做任何操作。
  • fopen
    打开文件,过于简单不再赘述。
  • rgb2gray
    官方文档:将 RGB 图像或颜色图转换为灰度图。
    简述:变黑白图片,仅保留亮度信息
  • fwrite
    文件的写入,过于简单不再赘述。
  • fclose
    关闭文件,相对于fopen,过于简单不再赘述。
  • fread
    二进制文件的读取,过于。。。。。。
  • reshape
    官方文档:重构数组。
    就是把矩阵的行和列改变一下大小,但是矩阵元素的数目不变,也就意味着这要求r*c(原来的行和列之积)等于r’*c’(改变后的行和列之积)。否则Matlab报错无法整除,就像这样:
    记得计算好原来和现在的行和列是否匹配!!!
  • uint8
    官方文档:Y = uint8(X) 将 X 中的值转换为 uint8 类型。超出范围 [0,28-1] 的值映射到最近的端点。
    这算是把重构后的数组使用二进制存放在矩阵里了,应该算是转换图片为二进制文件的重要的一步。
  • subplot
    生成图像的摆放,过于easy。。。。赘述。
  • imshow
    展示图片(生成图像),过于easy。。。。赘述。
整体思路

在当前.m文件的文件夹里存放一张图片用于测试,首先用imread()函数读取该图片,再使用rgb2gray()把测试图转化为灰度图,把灰度图存放在一个新建的.bin文件(二进制文件)中。接下来是读取文件,使用fread()读取文件并存放在另一个矩阵中,注意此时fread()读取文件会存放为一行,所以后面就用reshape()重构数组,并且使用uint8()变成二进制存储,最后就可以直接imshow()咯。

代码
clc;clear;close all
%% 写图像
img = imread('1.jpg');
fileID1=fopen('test.bin','w');
A = rgb2gray(img);
fwrite(fileID1,A');
fclose(fileID1);
%% 读图像
fileID2=fopen('test.bin','r');
B=fread(fileID2);
fclose(fileID2);
B = uint8(reshape(B,690,[]))';
%% 绘图
figure
subplot(3,1,1)
imshow(img)
subplot(3,1,2)
imshow(A)
subplot(3,1,3)
imshow(B)
%%
运行结果

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傲娇书生打嗝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值