⛳️座右铭:行百里者,半于九十。
更多Matlab图像处理仿真内容点击👇
①Matlab图像处理(进阶版)
②付费专栏Matlab图像处理(初级版)
⛳️关注CSDN海神之光,更多资源等你来!!
文中将图像预处理与边缘检测相结合对瓶盖瑕疵进行检测, 先使用直方图规定化的方法对图像做出修正与增强, 再利用中值滤波的方法消除图像孤立的噪声点;Canny算子快速分辨出瓶盖瑕疵, 再利用采用Otsu阈值方法求取自适应阈值自动选择并提取瑕疵。
1 图像预处理
在特征值提取之前, 必须对图像进行预处理。在实验中使用的灰度图像。应用直方图规定化和中值滤波器对图像降噪、增强。
1.1 直方图规定化
在之前的许多研究成果中, 将直方图均衡化作为图像增强的主要方法。但是图像一般比较灰暗, 它的灰度直方图全都集中在低灰度区, 低灰度频率很高把这幅图片均衡化后, 相对较低灰度的像素会被均衡到高灰度区, 图像会产生高亮和失真。所以本文放弃直方图规则化而选用直方图规定化就是为了避免出现这种现象。直方图规定化是使原图像灰度直方图变成规定形状的直方图而对图像做修正的增强方法。它是对直方图均衡化处理的一种有效地扩展, 而直方图均衡化处理只是直方图均衡化的一个特例。用直方图规定化对图片增强。断经实验效果。
在对图像进行预处理后, 图像的对比度明显上升, 并且没有高亮和失真, 有利于特征值的提取。
1.2 图像消噪
在图像采集和直方图规定化过程中难免会产出不必要地噪声, 因此须对图像进行消噪处理。本文采用了比较普遍的中值滤波处理方法。
- 把图像中的像素按灰度值阈值T分为两类Q1和Q2。Q1由0~S的像素组成, Q2由S+1~M组成, M为像素的灰度级数。
- 设Q1和Q2各自的平均灰度值为u1和u2, 图像总的平均灰度值为u;Q1和Q2占图像中的比例为w1和w2。
%*初始化
clc; clear all; close all;
%*图像预处理
I=imread(‘11.jpg’);%读入标准模板图像
J=rgb2gray(I);%转化为灰度图片
subplot(241),imshow(I);title(‘原图’);%显示图片
K=imread(‘qx1.jpg’);
M=rgb2gray(K);
subplot(242),imshow(K);title(‘缺陷图’);
%*为得到更好的效果,可适当的采用图片增强,直方图均衡化,平滑,锐化等操作
%图像配准,以处理有旋转现象的图片
%***(一)差影法,去噪 最终结果变量 L
L=imabsdiff(J,M);%两张图片相减
subplot(243),imshow(L);title(‘相减后灰度图L’);
%***(二)图像增强两种方法 最终结果变量 L1 L2 使用变量L
L1=imadjust(L,[0.1 1], [0 1]);
subplot(244),imshow(L1);title(‘灰度变换增强对比度L1’);
%subplot(275),imhist(L1);title(‘直方图灰度变换增强对比度L1’);
[L2,T]=histeq(L,64);% 直方图均衡化,图像灰度扩展到0~255,但是只有64个灰度级
%subplot(276),imshow(L2);title(‘直方图均匀化L2’);
%subplot(277),imhist(L2);title(‘直方图均匀化后的直方图L2’);
%subplot(278),plot((0:255)/255,T);title(‘转移函数曲线L2’);
%***(三)图像滤波三种方法 ,中值滤波VS均值滤波VS维纳滤波,选取效果最佳的。最终结果变量 B1 B2 B3
%中值滤波
B1=medfilt2(L1,[5 5]); %中值滤波,窗口大小为5×5
%subplot(279),imshow(B1);title(‘二维中值滤波效果B1’);
%均值滤波
M4=[0 1 0; 1 0 1; 0 1 0];
M4=M4/4;% 4邻域平均滤波
B2=filter2(M4,L1);
subplot(2,4,5),imshow(B2);title(‘均值滤波B2’);
%*Wiener
[B3 noise]=wiener2(L1, [5 5]);%窗口大小为5×5
%subplot(2,7,11),imshow(B3);title(‘自适应魏纳滤波B3’);
%***(四)5种不同的梯度增强法进行图像锐化
%***(五)图像的高通滤波
%图像分割
%***(六)图像的阈值分割 中间结果变量 C1 C2 最终结果变量 C11 C12
%subplot(2,7,12),imhist(B1);title(‘B1滤波后灰度直方图’);% 观察灰度直方图,灰度1根据直方图的谷确定阈值,40处有谷,确定阈值T=140
C1=im2bw(B1,0.1/255); %im2bw函数需要将灰度值转换到[0,1]范围内
subplot(2,4,6),imshow(C1);title(‘0.1 C1阈值分割结果’);
C11=double(C1);
%figure,imhist(B1);title(‘图像的阈值分割直方图’);
%figure,imshow(C1);title(‘图像的阈值结果’);
%阈值迭代法分割
ZMax=max(max(B2));
ZMin=min(min(B2));
TK=(ZMax+ZMin)/2;
bCal=1;
iSize=size(I); %图像大小
while(bCal)
iForeground=0;
iBackground=0; %定义前景和背景数
ForegroundSum=0;
BackgroundSum=0; %定义前景和背景的灰度总和
for i=1:iSize(1)
for j=1:iSize(2)
tmp=I(i,j);
if(tmp>=TK)
iForeground=iForeground + 1;
ForegroundSum=ForegroundSum + double(tmp);
else
iBackground=iBackground + 1;
BackgroundSum=BackgroundSum + double(tmp);
end
end
end
ZO = ForegroundSum/iForeground;
ZB = BackgroundSum/iBackground; %计算前景和背景的平均值
TKTmp = uint8((ZO+ZB)/2);
if(TKTmp==TK)
bCal = 0;
else
TK = TKTmp;
end %当前阈值不再变化,说明迭代结束
end
disp(strcat(‘迭代后的阈值:’,num2str(TK)));
C2=im2bw(B2,double(TK)/255);
C12=double(C2);
subplot(2,4,7),imshow(C12);title(‘阈值迭代法分割结果C12’);
%se = strel(‘line’,11,90);
%C111=imdilate(C12,se);
%C121=imerode(C111,se);
%***(七)图像边缘检测 最终结果变量 D1 D2 D3 D4 sobel,canny,prewitt等
%D1=edge(C11,‘log’,0.003,2); % σ=2
%figure,imshow(D1);title(‘边缘检测 log σ=2’);
%D2=edge(C11,‘canny’,0.2);
%figure,imshow(D2);title(‘边缘检测 canny算子’);
%D3=edge(C121,‘log’,0.003,2); % σ=2
%figure,imshow(D3);title(‘迭代法 边缘检测 log σ=2’);
D4=edge(C12,‘canny’,0.2);
figure,imshow(D4);title(‘存在缺陷’);
imwrite(D4,‘F:毕业设计毕业程序设计缺陷图片1.jpg’)%存入图片
[row, column] = size(D4);
num = 0;
for i = 1:row
for j = 1:column
if(D4(i,j)==1)
num = num +1;
rec(:,num) = [i;j];
end
end
f=imread(‘qx3.jpg’);%读入图片
%subplot(2,2,1);imshow(f)
f1=im2double(f);%将真彩图片转化为double型
I=rgb2gray(f);%将真彩图像转化为灰度图像
%subplot(2,2,2);imshow(I)
%subplot(2,2,3);imhist(I);%显示直方图
p=edge(I,‘sobel’);
%subplot(2,2,4);imshow§;
imwrite(I,‘C:UserslenovoDesktopf9ffefca4217d2bbf043243db84a4b86瑕疵检测灰度1.jpg’)
h4=medfilt2(p,[1,1]);%用3*3的模板进行中值滤波
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长