机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波)

这篇具有很好参考价值的文章主要介绍了机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

     扯一点题外话,这一个月经历了太多,接连感染了甲流、乙流,人都快烧没了,乙流最为严重,烧了一个星期的38-39度,咳嗽咳到虚脱。还是需要保护好身体,感觉身体扛不住几次连续发烧!(甲流乙流是病毒,提前准备好奥司他韦,这个是阻断病毒复制的药,48小时内效果是最明显的,不要像我一样等到中招了,才匆忙去买,送了3天,过了最佳时间.......)

———————————————————————————————————————————

首先,我们还是先引入一个概念,图像处理操作包括:转换操作、赋值操作、变换操作、逻辑操作、过滤操作。(过滤操作就是本节主体)

转换操作:

转换操作将输入图像转换为另外一种格式,比如说RGB图像转为灰度图像,灰度图像转为二值图像。 RGB转为灰度利用公式::

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉

 在最前面的几节里面,我们了解到了RGB图像是3通道图像,一个像素的颜色由R、G、B决定。如果我们想从RGB转为灰度图像,就可以利用上面的公式实现。

灰度图像转为二值图像就是利用二值化,设定一个阈值,小于阈值为0,大于阈值为1,在之前的几节里面我们也是涉及到了的。

赋值操作:

初始化:将图像中所有的像素的灰度值赋值为某一个常数,这个里面必须要明确的是图像高度和宽度。

复制:将输入图像的每个像素灰度值复制输出到输出图像像素的灰度值中。

反转:灰度值的变换,假如一个图像灰度值范围为[0-255],设图像的一个像素的灰度值为x,图像反转后的 灰度值为Y=255-X

变换操作:

变换操作通常涉及到输入图像的频率域,空间域到频率域的转换需要傅里叶变换。

过滤操作:

过滤操作描述:为使用正方形、矩形或线性过滤矩阵对输入图像进行卷积

滤波器包括:平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐 化、中值滤波。

在我看来,对于一个滤波器来说,最能体现出滤波器的特点的地方应该是内核的元素的值。后面的不同滤波器代码可能都只是修改了内核的值。由于内容比较多,动手去实现就非常好理解!

平均滤波:平均过滤器旨在消除噪声

matlab代码如下:

clear;
n = 5;
I = imread('1.tif');
j = imnoise(I,'salt',0.02);
[height,width] = size(j);
FilterMid = j;
for row = (n+1)/2: height-(n-1)/2
for col = (n+1)/2:width-(n-1)/2
temp = double(j(row-((n-1)/2):row+((n-1)/2),col-((n-1)/2):col+((n-1)/2)));
template2 = sort(temp(:));
FilterMid(row,col) = template2((n*n+1)/2);
end
end
figure,subplot(1,3,1),imshow(I),title('原图像');
subplot(1,3,2),imshow(j),title('椒盐处理后的图像');
subplot(1,3,3),imshow(FilterMid),title('中值滤波后图像');

处理结果如下:

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉 高斯滤波:线性平滑滤波器,利用的是加权平均的处理方法,权重利用的是距离的远近距离越近权重越大,也就是说对中心像素点的像素值生成影响越大。

代码如下:

clear,clc;
Img = imread('1.tif');
M = size(Img);
if numel(M)>2%判断灰度图像还是彩色图像
gray = rgb2gray(Img);
else
gray = Img;
end
%创建滤波器
I = imnoise(gray,'salt',0.02);
W =fspecial('gaussian',[5,5],1);
G = imfilter(I,W,'replicate');
figure
subplot(1,3,1),imshow(gray),title('原图像');
subplot(1,3,2),imshow(I),title('加了噪声图像');
subplot(1,3,3),imshow(G),title('高斯滤波器处理后图像');

运行结果如下:

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉水平prewitt :水平Prewitt操作类似梯度滤波器一样,梯度滤波器也叫边缘滤波器,具有通过被考察像素某 一个方向的灰度变化的梯度(即出现突变的地方),找到边缘位置的作用,主打一个突出水平边缘效果。

垂直prewitt :垂直prewitt具有突出图像垂直边缘的效果。

matlab代码如下:

clear;
F = imread('1.png');
F = rgb2gray(F);
f = double(F);
[row,col] = size(f);
f1 = zeros(row,col);
f2 = zeros(row,col);
f3 = zeros(row,col);
gy = [1,0,-1;1,0,-1;1,0,-1];
gx = [-1,-1,-1;0,0,0;1,1,1];
for i=2:row-1
for j=2:col-1
fx = [f(i-1,j-1),f(i-1,j),f(i-1,j+1);f(i,j-1),f(i,j),f(i,j+1);f(i+1,j1),f(i+1,j),f(i+1,j+1)];
fy = [f(i-1,j-1),f(i-1,j),f(i-1,j+1);f(i,j-1),f(i,j),f(i,j+1);f(i+1,j1),f(i+1,j),f(i+1,j+1)];
Gx = gx.*fx;
Gy = gy.*fy;
A = abs(sum(Gx(:)));
B = abs(sum(Gy(:)));
C = ((sum(Gx(:)))^2+(sum(Gy(:)))^2)^0.5;
if A >= 50//50为阈值,后面B、C同理
f1(i,j) = 255;
end
if B >= 50
f2(i,j) = 255;
end
if C >=50
f3(i,j) = 255;
end
end
end
figure
subplot(2,2,1),imshow(F),title('原图像');
subplot(2,2,2),imshow(f1),title('水平prewitt');
subplot(2,2,3),imshow(f2),title('垂直prewitt');
subplot(2,2,4),imshow(f3),title('水平且垂直prewitt');

运行结果如下:
机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉

阈值的设置需要不断去调整,没有说固定的最佳的阈值。

Sobel: 

水平Sobel:同理于prewitt算子,可以突出水平边缘,但是却通过与中心像素点的距离修改了影响的参数。

垂直sobel同样如此。

matlab代码如下:

clear;
F = imread('1.bmp');
F = rgb2gray(F);
f = double(F);
[row,col] = size(f);
f1 = zeros(row,col);
f2 = zeros(row,col);
f3 = zeros(row,col);
gx = [-1,-2,-1;0,0,0;1,2,1];
gy = [1,0,-1;2,0,-2;1,0,-1];
for i=2:row-1
for j=2:col-1
fx = [f(i-1,j-1),f(i-1,j),f(i-1,j+1);f(i,j-1),f(i,j),f(i,j+1);f(i+1,j1),f(i+1,j),f(i+1,j+1)];
fy = [f(i-1,j-1),f(i-1,j),f(i-1,j+1);f(i,j-1),f(i,j),f(i,j+1);f(i+1,j1),f(i+1,j),f(i+1,j+1)];
Gx = gx.*fx;
Gy = gy.*fy;
A = abs(sum(Gx(:)));
B = abs(sum(Gy(:)));
C = ((sum(Gx(:)))^2+(sum(Gy(:)))^2)^0.5;
if A >= 50
f1(i,j) = 255;
end
if B >= 50
f2(i,j) = 255;
end
if C >=50
f3(i,j) = 255;
end
end
end
figure
subplot(2,2,1),imshow(F),title('原图像');
subplot(2,2,2),imshow(f1),title('水平sobel');
subplot(2,2,3),imshow(f2),title('垂直sobel');
subplot(2,2,4),imshow(f3),title('水平且垂直sobel');

运行结果如下:

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉拉普拉斯算子:

二阶导数算子,作用是突出边缘效果,也就是锐化的效果

matlab代码如下:

clear;
img= imread('1.bmp');
%I = rgb2gray(img);
I= im2double(img);
[m,n]=size(I);
result =zeros(size(I));
laplace = [-1,-1,-1;-1,8,-1;-1,-1,-1];
for i= 2:m-1
for j= 2:n-1
f = [I(i-1,j-1),I(i-1,j),I(i-1,j+1);I(i,j-1),I(i,j),I(i,j+1);I(i+1,j1),I(i+1,j),I(i+1,j+1)];
G= laplace.*f;
result(i,j)= abs(sum(G(:)));
end
end
img = im2uint8(img);
result = im2uint8(result);
figure
subplot(1,2,1),imshow(img),title('原图像');
subplot(1,2,2),imshow(result),title('拉普拉斯处理后图像');

运行结果如下:

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉

锐化低和锐化图像: 

锐化:突出边缘

锐化低:突出边缘的同时平滑图像

代码如下:

clear;
img= imread('1.bmp');
%I = rgb2gray(img);
I= im2double(img);
[m,n]=size(I);
result =zeros(size(I));
result1 = zeros(size(I));
result2 = zeros(size(I));
laplace = [-1,-1,-1;-1,8,-1;-1,-1,-1];
sharpen = [-1,-1,-1;-1,9,-1;-1,-1,-1];
sharpen_low = [-1/8,-1/8,-1/8;-1/8,2,-1/8;-1/8,-1/8,-1/8];
for i= 2:m-1
for j= 2:n-1
f = [I(i-1,j-1),I(i-1,j),I(i-1,j+1);I(i,j-1),I(i,j),I(i,j+1);I(i+1,j1),I(i+1,j),I(i+1,j+1)];
G= laplace.*f;
G2 = sharpen.*f;
G3 =sharpen_low.*f;
result(i,j)= abs(sum(G(:)));
result1(i,j)= abs(sum(G2(:)));
result2(i,j)= abs(sum(G3(:)));
end
end
img = im2uint8(img);
result = im2uint8(result);
result1 = im2uint8(result1);
result2 = im2uint8(result2);
figure
subplot(2,2,1),imshow(img),title('原图像');
subplot(2,2,2),imshow(result),title('拉普拉斯处理后图像');
subplot(2,2,3),imshow(result1),title('锐化处理图像');
subplot(2,2,4),imshow(result2),title('锐化低处理图像');

结果如下:

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉

中值滤波:取内核的中值作为中心元素的值。

代码如下:

clear;
n = 5;
img = imread('1.bmp');
j = imnoise(img,'salt',0.02);
[height,width] = size(j);
FilterMid = j;
for row = (n+1)/2:height-(n-1)/2
for col = (n+1)/2:width-(n-1)/2
temp = double(j(row-((n-1)/2):row+((n-1)/2),col-((n-1)/2):col+((n-1)/2)));
template2 = sort(temp(:));
FilterMid(row,col)= template2((n*n+1)/2);
end
end
figure
subplot(1,3,1),imshow(img),title('原图像');
subplot(1,3,2),imshow(j),title('加入椒盐噪声的图像');
subplot(1,3,3),imshow(FilterMid),title('中值滤波处理后的图像');

运行结果如下:

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉 均值滤波:取内核的均值作为中心元素的值

代码如下:

clear;
clc;
fn=imread('1.bmp');
f=imnoise(fn,'salt',0.02);
[row,col]=size(f);
f1 = zeros(row,col);
for i=2:row-1
for j=2:col-1
f2 =[f(i-1,j-1),f(i-1,j),f(i-1,j+1);f(i,j-1),f(i,j),f(i,j+1);f(i+1,j1),f(i+1,j),f(i+1,j+1)];
f1(i,j) = mean((f2(:)));
end
end
f1= round(f1);
%f1 = double2uint8(f1);
imshow(f1);
figure
subplot(1,3,1),imshow(fn),title('原图像');
subplot(1,3,2),imshow(f),title('加入噪声的图像');
subplot(1,3,3),imshow(f1,[0,255]),title('均值滤波处理后的图像');

运行结果如下:

机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波),机器视觉,图像处理,计算机视觉

建议去动手实现一下! 文章来源地址https://www.toymoban.com/news/detail-809766.html

到了这里,关于机器视觉技术与应用实战(平均、高斯、水平prewitt、垂直prewitt、水平Sobel、垂直Sobel、拉普拉斯算子、锐化、中值滤波)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB算法实战应用案例精讲-【人工智能】基于机器视觉的机器人及机械臂运动规划(补充篇)

    目录 前言 几个高频面试题目 机器人抓取时怎么定位的?用什么传感器来检测?

    2024年02月07日
    浏览(37)
  • 机器学习-搜索技术:从技术发展到应用实战的全面指南

    在本文中,我们全面探讨了人工智能中搜索技术的发展,从基础算法如DFS和BFS,到高级搜索技术如CSP和优化问题的解决方案,进而探索了机器学习与搜索的融合,最后展望了未来的趋势和挑战,提供了对AI搜索技术深刻的理解和展望。 关注TechLead,分享AI全维度知识。作者拥有

    2024年02月05日
    浏览(40)
  • 机器学习-ROC曲线:技术解析与实战应用

    本文全面探讨了ROC曲线(Receiver Operating Characteristic Curve)的重要性和应用,从其历史背景、数学基础到Python实现以及关键评价指标。文章旨在提供一个深刻而全面的视角,以帮助您更好地理解和应用ROC曲线在模型评估中的作用。 关注TechLead,分享AI全维度知识。作者拥有10+年

    2024年02月05日
    浏览(34)
  • 大数据机器学习深度解读ROC曲线:技术解析与实战应用

    机器学习和数据科学在解决复杂问题时,经常需要评估模型的性能。其中,ROC(Receiver Operating Characteristic)曲线是一种非常有用的工具,被广泛应用于分类问题中。该工具不仅在医学检测、信号处理中有着悠久的历史,而且在近年来的机器学习应用中也显得尤为关键。 ROC曲线

    2024年02月04日
    浏览(31)
  • 青少年机器人技术一级核心知识点、水平要求和考试标准

    青少年机器人技术的发展已成为当今世界科技领域中备受瞩目的一项技术。机器人技术的应用范围越来越广泛,不仅在工业制造、医疗、教育等领域中得到广泛应用,同时也成为了青少年学习STEM(科学、技术、工程、数学)的重要内容。 为了推动青少年机器人技术的发展,

    2024年02月12日
    浏览(32)
  • Python VTK计算曲面的高斯曲率和平均曲率

    Python VTK计算曲面的高斯曲率和平均曲率,如何使用户Python版本的VTK计算曲面的高斯曲率并映射在曲面上。使用了两个不同的表面,每个表面根据其高斯曲率和平均曲率着色.   本文介绍了 如何使用户Python版本的VTK计算曲面的高斯曲率并映射在曲面上。本例中使用了两个不同

    2023年04月23日
    浏览(24)
  • 人工智能在安全领域的应用:提高安全防护水平的关键技术

    随着人工智能技术的不断发展和进步,人工智能在各个领域的应用也逐渐成为主流。安全领域也不例外。在这篇文章中,我们将讨论人工智能在安全领域的应用,以及它如何帮助提高安全防护水平。 安全问题在现代社会中扮演着越来越重要的角色。随着互联网的普及和信息化

    2024年04月14日
    浏览(67)
  • 混沌演练状态下,如何降低应用的MTTR(平均恢复时间) | 京东云技术团队

    在企业业务领域,锦礼是针对福利、营销、激励等员工采购场景的一站式解决方案,包含面向员工、会员等弹性激励SAAS平台。由于其直接面向公司全体员工,其服务的高可用尤其重要,本文将介绍锦礼商城大促前夕,通过混沌工程实战演习,降低应用的MTTR。 MTTR(平均恢复时

    2024年02月10日
    浏览(31)
  • 机器视觉企业实战

    机器视觉企业实战, 又名:机器视觉之从调包侠到底层开发(第5天) 这个专栏是偏实战的系列,由浅入深学习机器视觉。最后可以收获:从悬赏一万的项目最后可以做到企业级的视觉应用 目标检测数据标注 1.1 数据收集与数据标注 1.2 数据标注的通用规则 1.3 案例实现 1.4 视

    2024年01月16日
    浏览(21)
  • AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理和区块链技术的乘客智能报警系统》案例的界面简介、功能介绍分享之自然语言处理技术

    AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理和区块链技术的乘客智能报警系统》案例的界面简介、功能介绍分享之自然语言处理技术 目录 人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然

    2024年01月17日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包