2021-06-02

Matlab图像灰度转换【保姆版】生成mif文件
代码部分
a=imread(‘图片.jpg’); %提取图像三通道信息
channel_1=a;
channel_2=a;
channel_3=a;

channel_1(:,:,2)=0; %第一幅图的G B通道的灰度值全部变成0 这样就只有R通道的了
channel_1(:,:,3)=0;

channel_2(:,:,1)=0;
channel_2(:,:,3)=0;

channel_3(:,:,1)=0;
channel_3(:,:,2)=0;

% 显示图像
subplot(2,2,1);
imshow(channel_1,[]);
title(‘R通道’);
subplot(2,2,2);
imshow(channel_2,[]);
title(‘G通道’);
subplot(2,2,3);
imshow(channel_3,[]);
title(‘B通道’);
subplot(2,2,4);
imshow(a,[]);
title(‘原图’);

%保存r、g、b三张照片
imwrite(channel_1,‘r.jpg’);
imwrite(channel_2,‘b.jpg’);
imwrite(channel_3,‘g.jpg’);

image_1 = imread(‘r.jpg’); % 读取图片
image_1 = rgb2gray(image_1); % 转成灰度图(Sobel算子是针对灰度图像提取边缘)
figure;
imshow(image_1); % 显示图片

fid=fopen(‘r.mif’,‘W’ ); % 打开图片.mif文件向里面写数据,如果还没有建立这个文件,会自动建立之后打开
fprintf(fid,‘WIDTH=8;\n’); % 数据宽度为8位(灰度值是0-255,8位的数据)
fprintf(fid,‘DEPTH=262144;\n\n’); % 数据的深度(512*512的图片,262144个数据)
fprintf(fid,‘ADDRESS_RADIX=UNS;\n’);% 地址数据为无符号数(unsigned)
fprintf(fid,‘DATA_RADIX=UNS;\n\n’); % 像素数据也是无符号数
fprintf(fid,‘CONTENT BEGIN\n’);
for x = 1:262144 % 262144个数据
fprintf(fid,’%d:%d;\n’,x-1,image_1(x)); % 写入数据
end
fprintf(fid,‘END;’); % 文件结束
fclose(fid); % 关闭文件

image_1 = imread(‘g.jpg’); % 读取图片
image_1 = rgb2gray(image_1); % 转成灰度图(Sobel算子是针对灰度图像提取边缘)
figure;
imshow(image_1); % 显示图片

fid=fopen(‘g.mif’,‘W’ ); % 打开图片.mif文件向里面写数据,如果还没有建立这个文件,会自动建立之后打开
fprintf(fid,‘WIDTH=8;\n’); % 数据宽度为8位(灰度值是0-255,8位的数据)
fprintf(fid,‘DEPTH=262144;\n\n’); % 数据的深度(512*512的图片,262144个数据)
fprintf(fid,‘ADDRESS_RADIX=UNS;\n’);% 地址数据为无符号数(unsigned)
fprintf(fid,‘DATA_RADIX=UNS;\n\n’); % 像素数据也是无符号数
fprintf(fid,‘CONTENT BEGIN\n’);
for x = 1:262144 % 262144个数据
fprintf(fid,’%d:%d;\n’,x-1,image_1(x)); % 写入数据
end
fprintf(fid,‘END;’); % 文件结束
fclose(fid); % 关闭文件

image_1 = imread(‘b.jpg’); % 读取图片
image_1 = rgb2gray(image_1); % 转成灰度图(Sobel算子是针对灰度图像提取边缘)
figure;
imshow(image_1); % 显示图片

fid=fopen(‘b.mif’,‘W’ ); % 打开图片.mif文件向里面写数据,如果还没有建立这个文件,会自动建立之后打开
fprintf(fid,‘WIDTH=8;\n’); % 数据宽度为8位(灰度值是0-255,8位的数据)
fprintf(fid,‘DEPTH=262144;\n\n’); % 数据的深度(512*512的图片,262144个数据)
fprintf(fid,‘ADDRESS_RADIX=UNS;\n’);% 地址数据为无符号数(unsigned)
fprintf(fid,‘DATA_RADIX=UNS;\n\n’); % 像素数据也是无符号数
fprintf(fid,‘CONTENT BEGIN\n’);
for x = 1:262144 % 262144个数据
fprintf(fid,’%d:%d;\n’,x-1,image_1(x)); % 写入数据
end
fprintf(fid,‘END;’); % 文件结束
fclose(fid); % 关闭文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值