1.批量二值化及保存


clc;
clear;
file_path =  'E:\spyder\spineunet-1\data\train\image\';% 图像文件夹路径
img_path_list = dir(strcat(file_path,'*.jpg'));%获取该文件夹中所有jpg格式的图像
img_num = length(img_path_list);%获取图像总数量
if img_num > 0 %有满足条件的图像for j = 1:img_num %逐一读取图像image_name = img_path_list(j).name;% 图像名IM =  imread(strcat(file_path,image_name));%fprintf('%d %d %s',i,j,strcat(file_path,image_name));% 显示正在处理的图像名%自适应滤波im=wiener2(IM,[3,3]);%二值化thresh=graythresh(im);im=im2bw(im,thresh);%            %****平滑滤波****
%            h=ones(3,3)/5;
%            h(1,1)=0;h(1,3)=0;h(3,1)=0;h(1,3)=0;
%            im=imfilter(IM,h);%            %****中值滤波****
%            im=medfilt2(IM,[3,3]);%              %****均值滤波****
%              fsp=fspecial('average',3);
%              im=imfilter(IM,fsp);%figure;%imshow(im);saveddir='E:\matlab\gxy\';savedname=fullfile(saveddir,image_name);imwrite(im,savedname);end
end

`2.滤波、开闭运算

I=imread('test16.bmp');
thresh=graythresh(I);
bw=im2bw(I,thresh);%****平滑滤波****
h=ones(3,3)/5;
h(1,1)=0;h(1,3)=0;h(3,1)=0;h(1,3)=0;
I1=imfilter(I,h);
thresh1=graythresh(I1);
bw1=im2bw(I1,thresh1);
se1=strel('line',5,200);%直线长度7,角度85
img1=imopen(bw1,se1);%开运算
img2=imclose(bw1,se1);%闭运算
img3=imclose(img1,se1);%先开后闭运算
img4=imopen(img2,se1);%先闭后开运算
img5=imdilate(bw1,se1);%膨胀操作
img6=imerode(bw1,se1);%腐蚀
figure(1);
subplot(331),imshow(I1);title('平滑滤波');
subplot(332),imshow(bw1);title('平滑滤波二值化');
subplot(333),imshow(img1);title('开运算');
subplot(334),imshow(img2);title('闭运算');
subplot(335),imshow(img3);title('先开后闭运算');
subplot(336),imshow(img4);title('先闭后开运算');
subplot(337),imshow(img5);title('膨胀操作');
subplot(338),imshow(img6);title('腐蚀');
subplot(339),imshow(bw);title('原图二值化');%****自适应滤波****
I2=wiener2(I,[3,3]);
thresh2=graythresh(I2);
bw2=im2bw(I2,thresh2);
se2=strel('line',5,215);%直线长度7,角度85
img11=imopen(bw2,se2);%开运算
img12=imclose(bw2,se2);%闭运算
img13=imclose(img11,se2);%先开后闭运算
img14=imopen(img12,se2);%先闭后开运算
img15=imdilate(bw2,se2);%膨胀操作
img16=imerode(bw2,se2);%腐蚀
figure(2);
subplot(331),imshow(I2);title('自适应滤波');
subplot(332),imshow(bw2);title('自适应滤波二值化');
subplot(333),imshow(img11);title('开运算');
subplot(334),imshow(img12);title('闭运算');
subplot(335),imshow(img13);title('先开后闭运算');
subplot(336),imshow(img14);title('先闭后开运算');
subplot(337),imshow(img15);title('膨胀操作');
subplot(338),imshow(img16);title('腐蚀');
subplot(339),imshow(bw);title('原图二值化');%****中值滤波****
I3=medfilt2(I,[3,3]);
thresh3=graythresh(I3);
bw3=im2bw(I3,thresh3);
se3=strel('line',5,90);%直线长度7,角度85
img111=imopen(bw3,se3);%开运算
img112=imclose(bw3,se3);%闭运算
img113=imclose(img111,se3);%先开后闭运算
img114=imopen(img112,se3);%先闭后开运算
img115=imdilate(bw3,se3);%膨胀操作
img116=imerode(bw3,se3);%腐蚀
figure(3);
subplot(331),imshow(I3);title('中值滤波');
subplot(332),imshow(bw3);title('中值滤波二值化');
subplot(333),imshow(img111);title('开运算');
subplot(334),imshow(img112);title('闭运算');
subplot(335),imshow(img113);title('先开后闭运算');
subplot(336),imshow(img114);title('先闭后开运算');
subplot(337),imshow(img115);title('膨胀操作');
subplot(338),imshow(img116);title('腐蚀');
subplot(339),imshow(bw);title('原图二值化');%****均值滤波****
fsp=fspecial('average',3);
I4=imfilter(I,fsp);
thresh4=graythresh(I4);
bw4=im2bw(I4,thresh4);
se4=strel('line',5,90);%直线长度7,角度85
img1111=imopen(bw4,se4);%开运算
img1112=imclose(bw4,se4);%闭运算
img1113=imclose(img1111,se4);%先开后闭运算
img1114=imopen(img1112,se4);%先闭后开运算
img1115=imdilate(bw4,se4);%膨胀操作
img1116=imerode(bw4,se4);%腐蚀
figure(4);
subplot(331),imshow(I4);title('均值滤波');
subplot(332),imshow(bw4);title('均值滤波二值化');
subplot(333),imshow(img1111);title('开运算');
subplot(334),imshow(img1112);title('闭运算');
subplot(335),imshow(img1113);title('先开后闭运算');
subplot(336),imshow(img1114);title('先闭后开运算');
subplot(337),imshow(img1115);title('膨胀操作');
subplot(338),imshow(img1116);title('腐蚀');
subplot(339),imshow(bw);title('原图二值化');n

都是一些基础操作,没有牛皮的东西写。。。

3.计算灰度、面积

image1=imread('test.jpg')  %图片的名字是test,格式为jpg%方法一 image1=wiener2(image,[3,3]);%滤波thresh1=graythresh(image1);%自动阈值bw=im2bw(image1,thresh1);%二值化
%               se=strel('line',5,90);  %结构元素
%               bw1=imopen(bw,se);    %开运算
%               bw2=imclose(bw1,se);  %闭运算figure;   %打印图片imshow(bw); %展示图片s_white=bwarea(bw); %一个2*2的领域计算图像中像素为1的个数即白色sum=numel(bw); %统计总像素s_black=sum-s_white; %黑色p= s_white/s_black;  result_area(j)=s_white;fprintf('; s_white=%f p=%f',s_white,p);% 显示正在处理的图像名%方法二count_black=numel(bw,(bw==0));  %统计像素为0的个数   %*******************计算平均灰度********************%[m,n]=size(image);min=256;max=0;sumGray=0;for i=1:nfor j=1:mif image(i,j)<minmin=image(i,j);endif image(i,j)>maxmax=image(i,j);endsumGray=sumGray+double(image(i,j));endendavgGray=sumGray/(m*n);fprintf('; avgGray=%f\n',avgGray);end
end

4.插值、绘制圆滑曲线图,拟合曲线,曲线标点
(1)

clc;
clear;
%YC3-2品种x1
%实验使用品种时间129,222,301,310,320
%原始数据
t=[19,         29,                         53,     60,         69,         79];%原始时间
y=[0,          752,                      9926,   404,        240,        0];%对应像素值
% values=spcrv([[t2(1) t2  t2(end)];[y2(1) y2 y2(end)]],3);  %拟原始数据的曲线图
%  plot(values(1,:),values(2,:),'b');%绿色%YC3-2品种x1%模拟的原始数据
t2=[19,     25, 29, 34,         44,         53,         63,     69,         79];%原始时间
y2=[0,      825,752,4889,      11569,      9926,       404,    100,          0];%对应像素值
t3=[19, 22, 25, 29, 34, 37, 41, 44, 47, 50, 53, 56, 60, 63, 66, 69, 72, 75, 79]; %需要插值时间的标准
%插值数据
n1=interp1(t2,y2,22,'nearest');%邻近插值
n2=interp1(t2,y2,37,'pchip'); %立方插值
n3=interp1(t2,y2,41,'pchip');
n4=interp1(t2,y2,47,'spline');%三次样条插值
n5=interp1(t2,y2,50,'spline');
n6=interp1(t2,y2,56,'spline');
n7=interp1(t2,y2,60,'spline');
n8=interp1(t2,y2,66,'linear');%线性插值
n9=interp1(t2,y2,72,'linear');
n10=interp1(t2,y2,75,'linear');
result_interpl=[0,n1,825,752,4889,n2,n3,11569,n4,n5,9926,n6,n7,404,n8,100,n9,n10,0];
values=spcrv([[t3(1) t3  t3(end)];[result_interpl(1) result_interpl result_interpl(end)]],3);  %拟原始数据的曲线图
plot(values(1,:),values(2,:),'b');%绿色%YC3-2品种x1,b参数表示颜色

(2)
如果要拟合曲线函数在命令行窗口输入:cftool

选择对应项出现如下图所示:

(3)

clear;
clc;
a1 = 1.09e+04;
b1 = 54.58;
c1 = 12.67;
x=30:80;
y = a1*exp(-((x-b1)/c1).^2);
plot(x,y);
title('油菜开花时序图');
text(43,a1*exp(-((43-b1)/c1).^2),'*初花期花临界点');
text(53,a1*exp(-((53-b1)/c1).^2),'*盛花临界点');
text(60,a1*exp(-((60-b1)/c1).^2),'*终花期花临界点');xlabel('油菜开花时间:天数')
ylabel('油菜花面积:像素')

整合了一下平常经常用到的一些基本操作,待续。。。

Matlab批量二值化图片保存及基本操作相关推荐

  1. matlab 图像二值化 后0、1像素的个数统计

    目标: 批量处理RGB图像,对其进行二值化处理(需要考虑二值化的阈值设置,此处不展开) 统计二值化之后,各个黑白图像中0.1 的像素点数目 使用折线图的方式,展示出统计的结果 首先进行输入文件夹 与输 ...

  2. MATLAB图像二值化

    还是老规矩先宣传一下QQ群群: 格子玻尔兹曼救星:293267908. 一切为了早日毕业. 听说可以在PPT作图然后用MATLAB二值化把复杂边界用01矩阵表达出来.上网看了下: I = imread ...

  3. matlab 图像二值化_推荐:为图像处理初学者设计的100个问题(含python实现代码)...

    本文整理了图像处理初学者应该需要了解的100个基础问题,涉及读取.显示图像.操作像素.拷贝图像.保存图像.灰度化(Grayscale).二值化(Thresholding).大津算法.HSV 变换.减色 ...

  4. MATLAB图像二值化函数im2bw与imbinarize对给定阈值的内部处理细节

    MATLAB图像处理工具包中的im2bw函数和imbinarize函数均可以实现灰度图像的二值化功能,且在MATLAB R2018a之后推荐使用imbinarize.但两者在内部处理图像的时候具有一些 ...

  5. 二值化图片数据解码显示(Grayscale8、Grayscale16、RGB888)————附带Qt版完整代码

    文章目录 1 效果 2 思路 3 实现代码 4 扩展 4.1 RGB888 4.2 Grayscale16 5 实验数据 1 效果 显示效果: 二值化后的图片数据: 原始数据信息: \x00\x1F\ ...

  6. matlab 反向二值化,MATLAB:图像二值化、互补图(反运算)(im2bw,imcomplement函数)...

    图像二值化.反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本黑的区域变为白的区域,白的区域变为黑的区域. 实现过程如下: close all;%关闭当前所有图形窗口, ...

  7. matlab确定灰度阈值T,matlab灰度图像二值化【灰度图像二值化算法研究】

    摘要: 在很多图像处理的过程中,经常需要对灰度图像进行二值化.本文对几种常用的图像二值化算法进行了阐述,并通过仿真,进行比较研究.根据实验结果,阐明了各种算法的优缺点. Abstract: The b ...

  8. 如何利用Matlab制作色卡,(七)用matlab生成二值化图和24色卡

    [code]%生成4个半径依次为10,30,50,100的圆 clc; clear; close all; I = zeros(256,256); %定义一个256*256的灰度图 iter = [1 ...

  9. 还在纠结通道数、位深度?实验带你看懂关于灰度图像,二值化图像,彩色图像、图片通道数,位深度的全部内容

    数据加载相关 前言 图片的通道数.位深度 单通道 三通道 四通道 通道数之间的转化 二值化图像 小结 灰度图像 小结 pillow库 相关全部代码 前言 首先我们都知道,图像是由一个个像素点组成的.图 ...

最新文章

  1. linux 权限 x 表示,在Linux系统中,用户对目录拥有“x”权限,表示可以执行下列哪种操作?...
  2. Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)(转载)
  3. Spring JdbcTemplate CRUD增删改查操作
  4. IIS 支持 php
  5. 终于有人把Knative讲明白了
  6. Oracle执行外部文件:
  7. linux下dns服务器部署,linux系统下部署DNS服务器
  8. shell编程之【告警系统】
  9. mysql 判断语句_mysql条件判断语句讲解
  10. 微信公众号服务号如何在线给粉丝发送模板消息
  11. EIQ分析法_配送中心
  12. 用 MeGUI 压制 DVDrip 入门
  13. bootstrap的pillbox使用
  14. L1-005 考试座位号 (15 分)
  15. 【教程】关于打开一些exe文件时,打开方式为microsoft store的解决办法
  16. 为了梦想而奋斗的人值得敬佩
  17. 三年登顶,浪潮新一代超融合开始冲刺
  18. 图书馆管理系统(c++语言实现)
  19. js网页简繁体切换cookie记录状态
  20. 如何解除win10和Git的最大文件路径限制

热门文章

  1. 【冷冻电镜】RELION4.0 pipeline命令总结(自用)
  2. linux 没有音频输出的解决方式
  3. 【IDEA 教程系列第 8 篇】idea 递进式选中代码
  4. form表单以ajax方法提交,附加额外的数据
  5. Cocos Analytics 自定义事件功能介绍
  6. VVC/H.266会议提案阅读(一)之JVET-A1001
  7. hevc角度预测_VVC帧内预测工具详解
  8. 景驰诉景驰?创始人内讧升级 争夺企业名称权
  9. 基于垃圾短信与垃圾邮件的检测以及iphone中siri所使用的IKAnalyzer中文分词技术
  10. 虚拟机硬盘直通挽救黑群晖数据