数字图像处理 第四章 数字图像处理中的基本运算

Rosalba ·
更新时间:2024-09-20
· 658 次阅读

目录一、基本运算分类第一类:基本运算第二类:多幅图像→单幅图像第三类:图像→数值/符号基本运算按处理的范围分类像素间的基本关系二、点运算点运算的概念点运算的运用二值化处理及实现三、代数运算加法运算——应用一加法运算——应用二减法乘法 一、基本运算分类 根据数字图像处理运算中输入信息与输出信息的类型可分为: 单幅图像→单幅图像(基本运算) 多幅图像→单幅图像 单幅或多幅图像→数值/符号等; 第一类:基本运算 第一类运算是图像处理中最基本的功能; 根据图像运算的数学特征,图像进本运算方式可分为: 点运算,代数运算,几何运算,逻辑运算; 第二类:多幅图像→单幅图像 第三类:图像→数值/符号 指纹识别:比对特征点 基本运算按处理的范围分类 点运算:运算结果只依赖于输入图像对应点的灰度值; 局部运算:运算结果是根据输入图像中以对应像素为中心的邻域内多个像素的灰度值计算出来; 全局运算:对整幅图像进行相同的处理; 像素间的基本关系 邻域:4方向有邻居称c的4邻域。记为N4(c);8方向有邻居称c的8邻域。记为N8(c) 在这里插入图片描述 对角邻域 连接:像素空间上邻接且像素灰度值满足相似性准则;
4-连接:q是p的4邻域,且值满足相似性;
8-连接:q是p的8邻域,且值满足相似性;
m-连接:去除连接的歧义性; 当像素间同时存在4和8连接时: 优先采用4-连接; 连通:像素按连接关系而形成的一条路径(4-连通,8-连通,m-连通) 连通分量:像素q连通到像素p的所有像素点的集合; 距离。便捷、区域、空洞(图论、拓扑学) 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 二、点运算 点运算的概念 点运算:即输出图像中每个像素点的灰度值仅由相对应输入像素点的灰度值确定。 作用:可改变像素点的灰度值。 点运算的实质:是灰度到灰度的映射过程。 点运算也称灰度变换、对比度增强、对比度拉伸; 分类:在这里插入图片描述 点运算的运用 对比度增强:又称对比度拉伸; 光度学标定:消除图像传感器非线性影响; 显示标定:让感兴趣的所有特征同等突出的显示出来; 轮廓线:可获得图像的轮廓线。(如二值化) 剪裁:使图像输出灰度级裁剪到0-255; 二值化处理及实现 三、代数运算 指两幅输入图像之间进行点对点的加减乘除运算得到输出图像的过程 加法运算——应用一 去除“叠加性”噪声(高斯噪声),太空航天器传回的星际图像; 在这里插入图片描述 在这里插入图片描述 加法运算——应用二 生成图像叠加效果(双重曝光) # -*- coding: utf-8 -*- """ Created on Thu Apr 2 09:48:06 2020 @author: 张若昀的对象 """ from PIL import Image; import numpy as np; img1=Image.open(r"C:\课堂\数字图像处理\实验参考图像\实验参考图像\合成-和1.jpg") img2=Image.open(r"C:\课堂\数字图像处理\实验参考图像\实验参考图像\合成-和2.jpg") im_new=img1.copy() width,height=img1.size for i in range(width): for j in range(height): r1,g1,b1=img1.getpixel((i,j)) r2,g2,b2=img2.getpixel((i,j)) im_new.putpixel((i,j),(int(r1*0.3+r2*0.7),int(g1*0.3+g2*0.7),int(b1*0.3+b2*0.7))) im_new.show()

在这里插入图片描述

悄悄整个美图(我觉得挺好看的嘻嘻 乡下的傍晚挺美的
在这里插入图片描述

减法 # -*- coding: utf-8 -*- """ Created on Thu Apr 2 09:48:06 2020 @author: 张若昀的对象 """ from PIL import Image; import numpy as np; img1=Image.open(r"C:\课堂\数字图像处理\实验参考图像\实验参考图像\合成-差1.jpg") img2=Image.open(r"C:\课堂\数字图像处理\实验参考图像\实验参考图像\合成-差2.jpg") im_new=img1.copy() width,height=img1.size for i in range(width): for j in range(height): r1,g1,b1=img1.getpixel((i,j)) r2,g2,b2=img2.getpixel((i,j)) im_new.putpixel((i,j),(int(r1*2-r2),int(g1*2-g2),int(b1*2-b2))) im_new.show()

在这里插入图片描述

乘法 # -*- coding: utf-8 -*- """ Created on Thu Apr 2 09:48:06 2020 @author: 张若昀的对象 """ from PIL import Image; import numpy as np; import math; img1=Image.open(r"C:\课堂\数字图像处理\实验参考图像\实验参考图像\合成-乘1.jpg") img2=Image.open(r"C:\课堂\数字图像处理\实验参考图像\实验参考图像\合成-乘2.jpg") im_new=img1.copy() width,height=img1.size for i in range(width): for j in range(height): r1,g1,b1=img1.getpixel((i,j)) r2,g2,b2=img2.getpixel((i,j)) im_new.putpixel((i,j),(int(r1*r2/255),int(g1*g2/255),int(b1*b2/255))) im_new.show()

在这里插入图片描述


作者:拔牙不打麻药



数字图像 数字图像处理 图像处理

需要 登录 后方可回复, 如果你还没有账号请 注册新账号