DIP数字图像处理
1. CV2库的基本使用#导入:pip install opencv-pythonimport cv2#读取图片img = cv2.imread(r'.\dataset\train\1.png')#获取图片宽高#显示图片cv2.imshow('title', img)#将图片写入文件cv2.imwrite(r'.\dataset\train\1_copy.png', img)# 转换为RGBima
·
1. CV2库的基本使用
#导入:pip install opencv-python
import cv2
#读取图片
img = cv2.imread(r'.\dataset\train\1.png')
#获取图片宽高
width = img.shape[0]
height = img.shape[1]
#显示图片
cv2.imshow('title', img)
#将图片写入文件
cv2.imwrite(r'.\dataset\train\1_copy.png', img)
# 转换为RGB
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 转换为灰度图2维
image_gray = cv2.cvtColor(image_rgb, cv2.COLOR_BGR2GRAY)
2. PIL库的基本使用
#导入PIL库
pip install pillow
from PIL import Image
#读取图片
imgL = Image.open('file.png').convert('L')
height = imgL.size[0]
width = imgL.size[1]
#显示图片
imgL.show()
#保存图片
imgL.save('file.png')
3. LBP(local binary pattern)
局部二值模式特征提取算法
局部特征描述算子,具有很强的纹理特征描述能力,具有光照不变性和旋转不变性
提取的图像的局部的纹理特征,反映每个像素与周围像素的关系
#导入:pip install skimage
from skimage.feature import local_binary_pattern
# settings for LBP
radius = 1 # LBP算法中范围半径的取值
n_points = 8 * radius # 领域像素点数
def extract(image):
# 转换为RGB
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 转换为灰度图2维
image_gray = cv2.cvtColor(image_rgb, cv2.COLOR_BGR2GRAY)
# 纹理特征
lbp = local_binary_pattern(image_gray, n_points, radius)
return lbp
4. KNN(K-Nearest Neighbor)近邻算法
#导入: pip install sklearn
from sklearn.neighbors import KNeighborsClassifier
#参数:与n_neighbors个样例临近
#weights权重:distance,uniform
#距离作为权重时,p=1是曼哈顿,p=2是欧式
#n_jobs:线程数,-1开到最大
knn = KNeighborsClassifier(n_neighbors=5, weights='distance',p=1,n_jobs=-1)
knn.fit(X_train,y_train)
y_ = knn.predict(X_test)
print(y_test)
print(y_)
print("测试准确率为:"+str(100*knn.score(X_test, y_test))+"%")
更多推荐
已为社区贡献2条内容
所有评论(0)