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))+"%")

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐