我正在尝试使用 sklearn 的 Mean Shift 算法分割彩色图像。我有以下代码:
import cv2
import numpy as np
from sklearn.cluster import MeanShift, estimate_bandwidth
from sklearn.datasets.samples_generator import make_blobs
import matplotlib.pyplot as plt
from itertools import cycle
from PIL import Image
image = Image.open('sample_images/fruit_half.png').convert('RGB')
image = np.array(image)
red = image[:,:,2]
green = image[:,:,1]
blue = image[:,:,0]
我已阅读图像并将其转换为 numpy 数组。然后我提取了每个颜色通道(R、G、B),以便我可以将每个颜色通道用作分类变量。
我想把上面的颜色矩阵转换成一个扁平的向量,因为我想把它用作分类的变量。例如,如果原始图像是 100x100,那么展平的颜色样本矩阵将是 10000 x 3。
我不想将每个矩阵转换为自己的向量;我想将所有三种颜色矩阵制成一个扁平向量。
但是,我不确定我可以使用什么方法来做到这一点。任何见解都值得赞赏。