图像分割:
`提示:计算机视觉五大技术:图像分类、图像检测、目标跟踪、语义分割、实例分割
计算机视觉—图像分割:
提示:选择任意图片,分别采用以下技术进行图像分割Image Segmentation
题目要求:
- 通过filter bank提取的纹理特征进行图像分割
- 结合像素值与坐标的k-means聚类,进行图像分割
- 结合像素值与坐标的mean shift聚类,进行图像分割
- 通过graph partition图分割的方式进行图像分割
–
实验流程:
1)纹理特征提取和进行图像分割
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
# print_imshow用于输出标题、图片信息
def print_imshow(title,image):
plt.title(title)
plt.imshow(image)
plt.colorbar()
plt.show()
# 读取图片
image = cv.imread("pkpk.jpg")[:,:,[2,1,0]]
print_imshow("原始图像",image)
# 进行预处理操作
blur = cv.blur(image,(5,5))
blur0=cv.medianBlur(blur,5)
# 把BGR格式转为HSV格式
hsv = cv.cvtColor(blur0, cv.COLOR_BGR2HSV)
# 进行阈值分割,以确定需要提取的像素阈值
low_blue = np.array([55, 0, 0])
high_blue = np.array([118, 255, 255])
mask = cv.inRange(hsv, low_blue, high_blue)
print_imshow("mask",mask)
# 显示由Mask作为边界的图像
res = cv.bitwise_and(image,image, mask= mask)
print_imshow("res",res)
2)进行聚类。
import cv2
import numpy as np
import matplotlib.pyplot as plt
#读取原始图像
image = cv2.imread('pkpk.jpg')
print(image.shape)
#图像二维像素转换为一维
data = image.