形态学图像处理

一、C语言简介程序语句分类

1. 循环:

  • while(表达式) 语句 \\当while()内的表达式为真时,循环执行{}内的语句,直到while()内的表达式为假.跳出循环.
  • do...while语句\\先执行do{}中的语句然后判断while()中的表达式
  • for语句,for(表达式1;表达式2;表达式3) \\先执行表达式1,然后执行表达式2,如果表达式2的值为真.那么执行{}内的语句,执行完毕后在执行表达式
  • 用break语句提前终止循环
  • 用continue语句结束本次循环

2.选择判断

  • if ...else 语句
  • switch
  • &&  逻辑与    两个值都为真,则结果为真,否则为假

||   逻辑或    有一个或一个以上为真,则结果为真,二则都为假时,结果为假.

!   逻辑非

  • 优先级

二、形态学算法

1.边界提取

I=imread(‘1.jmp‘);          %载入图像

subplot(1,3,1),imshow(I);

title(‘原始图像‘);

axis([50,250,50,200]);

grid on;                  %显示网格线

axis on;                  %显示坐标系

I1=im2bw(I);

subplot(1,3,2),imshow(I1);

title(‘二值化图像‘);

axis([50,250,50,200]);

grid on;                  %显示网格线

axis on;                  %显示坐标系

I2=bwperim(I1);                 %获取区域的周长

subplot(1,3,3),imshow(I2);

title(‘边界周长的二值图像‘);

axis([50,250,50,200]);

grid on;

axis on;

区域填充

连通分量的提取

凸壳

膨胀

I=imread(‘1.jmp‘);          %载入图像

I1=rgb2gray(I);

subplot(1,2,1);

imshow(I1);

title(‘灰度图像‘)

axis([50,250,50,200]);

grid on;                  %显示网格线

axis on;                  %显示坐标系

se=strel(‘disk‘,1);          %生成圆形结构元素

I2=imdilate(I1,se);             %用生成的结构元素对图像进行膨胀

subplot(1,2,2);

imshow(I2);

title(‘ 膨胀后图像‘);

axis([50,250,50,200]);

grid on;                  %显示网格线

axis on;                  %显示坐标系

腐蚀

I=imread(‘xian.bmp‘);          %载入图像

I1=rgb2gray(I);

subplot(1,2,1);

imshow(I1);

title(‘灰度图像‘)

axis([50,250,50,200]);

grid on;                  %显示网格线

axis on;                  %显示坐标系

se=strel(‘disk‘,1);       %生成圆形结构元素

I2=imerode(I1,se);        %用生成的结构元素对图像进行腐蚀

subplot(1,2,2);

imshow(I2);

title(‘腐蚀后图像‘);

axis([50,250,50,200]);

grid on;                  %显示网格线

axis on;                  %显示坐标系

开操作和闭操作

I=imread(‘xian.bmp‘);          %载入图像

subplot(2,2,1),imshow(I);

title(‘原始图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

I1=rgb2gray(I);

subplot(2,2,2),imshow(I1);

title(‘灰度图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

se=strel(‘disk‘,1);     %采用半径为1的圆作为结构元素

I2=imopen(I1,se);         %开启操作

I3=imclose(I1,se);        %闭合操作

subplot(2,2,3),imshow(I2);

title(‘开启运算后图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

subplot(2,2,4),imshow(I3);

title(‘闭合运算后图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标

开启闭合组合操作

I=imread(‘1jmp‘);          %载入图像

subplot(3,2,1),imshow(I);

title(‘原始图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

I1=rgb2gray(I);

subplot(3,2,2),imshow(I1);

title(‘灰度图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

se=strel(‘disk‘,1);

I2=imopen(I1,se);         %开启操作

I3=imclose(I1,se);        %闭合操作

subplot(3,2,3),imshow(I2);

title(‘开启运算后图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

subplot(3,2,4),imshow(I3);

title(‘闭合运算后图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

se=strel(‘disk‘,1);

I4=imopen(I1,se);

I5=imclose(I4,se);

subplot(3,2,5),imshow(I5);        %开—闭运算图像

title(‘开—闭运算图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

I6=imclose(I1,se);

I7=imopen(I6,se);

subplot(3,2,6),imshow(I7);        %闭—开运算图像

title(‘闭—开运算图像‘);

axis([50,250,50,200]);

axis on;                  %显示坐标系

细化粗化 (这几个继续找程序)

2.中值滤波器

I=imread(‘1.jmp‘);

I=rgb2gray(I);

J=imnoise(I,‘salt&pepper‘,0.02);

subplot(231),imshow(I);title(‘原图像‘);

subplot(232),imshow(J);title(‘添加椒盐噪声图像‘);

k1=medfilt2(J);            %进行3*3模板中值滤波

k2=medfilt2(J,[5,5]);      %进行5*5模板中值滤波

k3=medfilt2(J,[7,7]);      %进行7*7模板中值滤波

k4=medfilt2(J,[9,9]);      %进行9*9模板中值滤波

subplot(233),imshow(k1);title(‘3*3模板中值滤波‘);

subplot(234),imshow(k2);title(‘5*5模板中值滤波 ‘);

subplot(235),imshow(k3);title(‘7*7模 板中值滤波‘);

subplot(236),imshow(k4);title(‘9*9 模板中值滤波‘);

明天附上运行图

时间: 2024-12-28 02:06:33

形态学图像处理的相关文章

学习 opencv---(10)形态学图像处理(2):开运算,闭运算,形态学梯度,顶帽,黒帽合辑

上篇文章中,我们重点了解了腐蚀和膨胀这两种最基本的形态学操作,而运用这两个基本操作,我们可以实现更高级的形态学变换. 所以,本文的主角是OpenCV中的morphologyEx函数,它利用基本的膨胀和腐蚀技术,来执行更加高级的形态学变换,如开闭运算.形态学梯度."顶帽"."黑帽"等等. 第二件事,是浅墨想跟大家做一个关于OpenCV系列文章的书写内容和风格的思想汇报. 是这样的,浅墨发现最近几期写出来的文章有些偏离自己开始开这个专栏的最初的愿望--原理和概念部分占的

【opencv入门之七】形态学图像处理(一):膨胀、腐蚀

参考网站: http://blog.csdn.net/poem_qianmo/article/details/23710721 1.形态学(morphology)概述 数学形态学(Mathematical morphplogy)是数学形态学图像处理的基本理论.其基本的运算包括: 二值腐蚀和膨胀.二值开闭运算.骨架抽取.极限腐蚀.击中击不中变化.形态学梯度.Top-hat变换.颗粒分析.流域变换.灰值腐蚀和膨胀.灰值开闭运算.灰值形态学梯度等. 最基本的两种是:腐蚀和膨胀.其两的主要功能有: 消除

学习 opencv---(9)形态学图像处理(一):膨胀和腐蚀

本篇文章中,我们一起探究了图像处理中,最基本的形态学运算--膨胀与腐蚀.浅墨在文章开头友情提醒,用人物照片做腐蚀和膨胀的素材图片得到的效果会比较惊悚,毁三观的,不建议尝试.......... 一.理论与概念讲解--从现象到本质 1.1 形态学概述 形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构,而我们图像处理中指的形态学,往往表示的是数学形态学,下面一起来了解数学形态学的概念. 数学形态学(Mathematical morphology)是一门建立在

opencv_形态学结构化元素对形态学图像处理的影响

场景 对大米预处理之后的二值图像做开运算再做canny边缘检测. python代码: 1 # kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) # 椭圆的核 2 3 kernel = np.ones((3,3),np.uint8) # 去除白色噪点,形态学开运算,3x3线性核 4 5 opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations =

Matlab 形态学图像处理(转载)

%% 第9章 形态学处理 %% imdilate膨胀 clc clear A1=imread('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif'); info=imfinfo('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif') B=[0 1 0 1 1 1 0 1 0]; A2=imdilate(A1,B);%图像A1被结构元素B膨胀 A3=imdilate(A2,B);

【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑

1.思考问题 在某张表中,存在一个id列(整数),用户希望在添加记录的时候,该列从1开始,自动的增长,如何处理? 2.介绍 Oracle通过序列处理自动增长列. (1) 可以为表中的列自动产生值 (2) 由用户创建数据库对象,并可由多个用户共享. (3) 一般用于主键或唯一列 (4) 序列也是一种数据对象 3.定义序列 2  格式: Create sequence 序列名 [Start with n1] [Increment by n2] [Minvalue n3 | nominvalue] [

Atitit 图像处理的摩西五经attilax总结

1. 数字图像处理(第三版)1 2. 图像处理基础(第2版)(世界著名计算机教材精选)1 3. 计算机视觉特征提取与图像处理(第三版)2 4. OpenCV图像处理 2 4.1. 模式识别(英文版)(第4版) 西奥多里德斯著2 4.2. 图像处理,分析与机器视觉 第三版Sonka等著 艾海舟等译2 4.3. 计算机视觉:理论与算法 RichardSzeliski著2 1. 数字图像处理(第三版) 作者:(美)冈萨雷斯,(美)伍兹 著 Line 1: 第1章 绪论 Line 10: 第2章 数字图

OpenCV学习 7:图像形态学:腐蚀、膨胀

原创文章,欢迎转载,转载请注明出处 首先什么是图像形态学?额,这个抄下百度到的答案.基本思想:    用具有一定形态的结构元素去度量和提取图像中的对应形状已达到对图像分析和识别的目的,形态学图像处理表现为一种领域运算方式(这个和前面的模糊运算是一样的运算方式),效果取决于结构元素(就是前面smooth里面的核)的大小,内容以及逻辑运算的性质.看了这些定义是不是很晕,对很晕...我比较关心的是它的用途和怎么计算.    用途是:简化图像数据,保持他们基本的形状特性,并出去不相干的结构.    基本

paper 76:膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

膨胀.腐蚀.开.闭运算是数学形态学最基本的变换.本文主要针对二值图像的形态学膨胀:把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔):腐蚀:把二值图像各1像素连接成分的边界点去掉从而缩小一层(可提取骨干信息,去掉毛刺,去掉孤立的0像素):开:先腐蚀再膨胀,可以去掉目标外的孤立点闭:先膨胀再腐蚀,可以去掉目标内的孔.以下参考论文:<数学形态学在图像处理中的应用> 二值形态学        数学形态学中二值图像的形态变换是一种针对集合的处理过程.其形态算子的实质是表达物体或形状的