目录
点操作:.线性点操作:F(D)=aD+b 若a>1,则对比度增强,contrast increased
非线性点操作:F(x)=x+C(D-x) D:最大化灰度水平maximun grey level
几何操作:(应用:图像的放大,缩小,旋转) 插值算法:最近邻插值法,多项式差值
数字图像的三要素:
pixel(picture element 像素)
Grey level(灰度值)
Coordinates(坐标)
标准的图像处理流程:
low level (image filtering )————intermediate level(图像分割)————high level(图像识别)
1.灰度直方图
.图像灰度值直方图的应用: 灰度值直方图中两个峰之间的谷底即为二值化的最佳阈值)
原始图片
灰度直方图
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=np.array(Image.open('D:/pan.jpg').convert('L'))
plt.figure("lena")
arr=img.flatten()
n, bins, patches = plt.hist(arr, bins=256, normed=1, facecolor='green', alpha=0.75)
plt.show()
效果
彩色图片的直方图
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
src=Image.open('D:/pan.jpg')
r,g,b=src.split()
plt.figure("lena")
ar=np.array(r).flatten()
plt.hist(ar, bins=256, normed=1,facecolor='r',edgecolor='r')
ag=np.array(g).flatten()
plt.hist(ag, bins=256, normed=1, facecolor='g',edgecolor='g')
ab=np.array(b).flatten()
plt.hist(ab, bins=256, normed=1, facecolor='b',edgecolor='b')
plt.show()
2.二值化:
(寻找最优的二值化值可以将图像的轮廓清晰的显现出来)即图片上只有两个灰度值,一般用0和255这两个灰度值。
怎么寻找最优二值化值:(可以是固定值或动态值)
若在灰度直方图上有双峰值,峰值之间的最小值一般就是最优的二值化分界点
寻找最优二值化值算法的初始值经常定义为一个mean值,即图像中灰度值的平均值。
寻找最优二值化算法:1.Isodata 算法
2.OTSU算法(大松算法):
3.entropy算法:(熵算法)
4.triangle算法:
上述的方法都是求解的fixed 二值化值
######固定的fixed二值化值
import cv2 as cv
import matplotlib.pyplot as plt
im = cv.imread('D:/pan.jpg')
imgray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)
retval,dst = cv.threshold(imgray,90,255,cv.THRESH_TOZERO)
plt.imshow(dst,'gray')
plt.show()
结果图:
5.自适应的二值化算法(动态二值化值):
######自适应算法求取二值化值
import cv2 as cv
import matplotlib.pyplot as plt
im = cv.imread('D:/pan.jpg')
imgray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)
im_at_mean = cv.adaptiveThreshold(imgray,255, cv.ADAPTIVE_THRESH_MEAN_C,
cv.THRESH_BINARY,29,13)
plt.imshow(im_at_mean,'gray')
plt.show()
结果图:
超级可爱的潘潘,hhhhhhhhhhh
3.卷积(滤波):可提取边缘,除噪
下面是几个写卷积滤波器效果的博文
2.https://blog.csdn.net/u013421629/article/details/78899828
边缘(edge)的类型;
edge边缘的属性:梯度,求灰度值的倒数,若超过一定阈值,则认为其是边缘edge。
梯度的计算,可以通过演算子(sobel,roberts,Prewitt演算子等)来实现
通过卷积来实现除噪: 1.高斯滤波: 2.Median 滤波(中值滤波)
4.图像处理,
4.1点操作:
.线性点操作:F(D)=aD+b 若a>1,则对比度增强,contrast increased
若0<a<1,则对比度减弱 contrast reduced
若a=1&b不等于0,则灰度水平发生变化shift gray level
若a<0,则对比反转reverse the contrast
非线性点操作:F(x)=x+C(D-x) D:最大化灰度水平maximun grey level
C:决定在中等灰度范围内增加(C>0)或减少(C<0)的数量(determine the amount of increase(C>0) or decrease(C<0) in the midlevel gray range)
4.2图像之间的加减乘除:(应用:去噪声,背景去除)
4.3几何操作:(应用:图像的放大,缩小,旋转)
4.4插值算法:最近邻插值法,多项式差值
4.5.图像的邻域操作(图像分类)
4.6.图像的特征
4.7.vtk库
5.数学形态学
5.1二值的数学形态学
struture element(SE):与kernel的区别是其有中心点
Geometric Shift 平移
binary dilation(扩张):即将F中的每个元素都按照K中的元素做相应的平移。若K中以蓝色的小球为中心点,(在structure element K矩阵中,空间代表不做计算的位置,0代表按照0来计算,1代表按照1来计算,)
紫色小球即代表右上方平移一位,即将F向右上方平移一位
蓝色小球代表不动,即F保持原始位置不动
绿色小球即代表向右平移一位,即F整个矩阵向右平移一位
然后求这三个矩阵的并集,即得到F+K
binary dilation的一些性质
binary erosion(腐蚀):与binary dilation不同的是它是求最后得到的新矩阵的交集,并且按照structure element中每个元素的相反方向进行平移。
binary opening(先做erotion再做dilation):除噪,求取特征点
binary closing(先做dilation再做erosion):填充图形
由dilation和erosion进行组合的一些算法:
1.hit and miss:用于显示物体的轮廓图
2.pattern spectrum:用于一幅图片上的不同尺寸物体的分类研究
3.反复的dilation
4.反复的erosion
5.2灰度的形态学
灰度值的dilation
灰度值erosion
5.3(conditional dilation,Geodesic Dilation,Morphological Reconstruction):
对所要处理的空间进行重建,例如对一张图片进行除噪以后,图片中的某些非噪点部分也被破坏掉,这时可通过conditional dilation对所处理的空间进行重建,来恢复破坏掉的非噪点部分。
一。 对于二值化的两张图片M,V来说,conditional dilation算法如下
M:Marker
V:Mask M是V的一个子集,对M进行dilation,然后取M dilation后的图像与V的交集,重复n次,直到第n次M dilation后的图像与第n-1次M dilation后的图像相等。
注意:SE不能太大,要足够的小。尽量避免噪声和图像中所需要的区有连接关系,所以需要对Mask做一些预处理,例如打断Mask中的一些连接。
二。对于灰度值图片来说(conditional dilation)
首先对marker做一个灰度化的dilation,然后检查dilation后的每一个灰度值是否超过mask的限制,重复上述过程直至稳定,即第n次dilation的结果和第n-1次dilation后的结果一致。
5.4.OBR。CBR
5.5分水岭算法(实现对图像的分割)
6.1彩色图像
表达彩色图像的方法:1.RGB
2.HIS(H:色度,I:总体的亮度。S:饱和度)
彩色照片的恢复:
图像的分割
ROI(region of interest):
基于能量的图像分割:DDC模型,能量方程
图像分割()