我使用 slic 聚类算法来创建生物医学图像的超像素(生物医学成像专家的整个幻灯片图像)。我想为超像素提取不同的特征、纹理和空间以创建特征表示,然后将其输入分类器(SVM、RF)以尝试对每个超像素进行分类,因为我有每个超像素的标签。最终目标是对每个超像素进行分类,然后使用它来构建分割。
对于每个超像素,我根据所有超像素的平均高度和宽度在所有超像素周围绘制一个大小一致的边界框,因为大小的分布在平均值附近相当高(有些会切掉小部分,而另一些会包括一些填充。我有几个问题
关于每个超像素的 gabor 滤波器,我得到一个 gabor 特征,其中每个像素都有一个值,然后我取这些的平均值以获得超像素 gabor 特征值。这是正确的方法吗?下面的代码
def getGabor(img, ksize, sigma, theta, lamda, gamma, l, ktype): kernel=cv2.getGaborKernel((ksize, ksize), sigma, theta, lamda, gamma, l, ktype=ktype) fimg = cv2.filter2D(img, cv2.CV_8UC3, kernel) filteredImage=fimg.reshape(-1) return filteredImage def getGabors(img): ksize=5 thetas = list(map(lambda x: x*0.25*np.pi, [1, 2])) gabors=[] for theta in thetas: for sigma in (1,3): for lamda in np.arange(0, np.pi, np.pi*0.25): for gamma in (0.05, 0.5): gabor = getGabor(img.reshape(-1), ksize, sigma, theta, lamda, gamma, 0, cv2.CV_32F) . gabors.append(np.mean(gabor)) return gabors
这将如何与 HOG 一起使用?我会采用相同的方法来平均特征向量吗?如何防止 HOG 描述符过大?
将超像素输入 CNN 以学习特征表示是否明智?
如果有人在对其他有用的图像特征描述符提出任何建议之前使用过这种数据,这将是一种数据类型的好方法?
任何有关构建功能或要查看超像素的功能类型的建议将不胜感激!
谢谢