【发布时间】:2019-07-11 16:32:08
【问题描述】:
我正在尝试使用 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。
我不想将每个矩阵转换成自己的向量;我想将所有三种颜色矩阵都制成一个扁平向量。
但是,我不确定我可以使用什么方法来做到这一点。任何见解都值得赞赏。
【问题讨论】:
-
我已经编辑了问题。
标签: python numpy opencv scikit-learn computer-vision