我有一组图像分为高质量图像和劣质图像。 我必须训练一个分类模型,以便可以将任何新图像分类为好/坏。 SVM似乎是执行此操作的最佳方法。 我已经在MATLAB中完成了图像处理,但没有在python中完成。
谁能建议如何在python中做到这一点? 什么是图书馆? 对于SVM scikit,图像和PCA的特征提取如何?
请注意,您要处理的问题不是分类就是质量评估。 我不是Python专家,但是从图像处理的角度来看,这是两个不同的问题。
@ BH85我同意。 但是问题是要评估质量,并在质量的基础上对它的好坏进行分类。 什么是正确的方法?
我将开始阅读这个简单的教程,然后进入Python的OpenCV教程。另外,如果您熟悉sklearn界面,则还有Scikit-Image。
我正在使用opencv 2.4,python 2.7和pycharm
SVM是用于数据分类的机器学习模型.Opencv2.7具有pca和svm。使用svm构建图像分类器的步骤是
调整每个图像的大小
转换为灰度
找到PCA
放平并添加到培训列表中
将标签附加到训练标签
示例代码为
1
2
3
4
5
6
7
8
9
10for file in listing1:
img = (path1 + file)
res=(img,(250,250))
gray_image = (res, cv2.COLOR_BGR2GRAY)
xarr=((gray_image).astype(np.float32))
m,v=(xarr)
arr= (v)
flat_arr= ()
training_set.append(flat_arr)
training_labels.append(1)
现在训练
1
2
3
4
5trainData=np.float32(training_set)
responses=np.float32(training_labels)
svm = ()
(trainData,responses, params=svm_params)
('svm_data.dat')
我想这会给你一些想法。
谢谢,但是为了上帝的爱,请给我们一个巨大的提示(对于我们这些人来说,这就是arent python gurus)"此代码实际上没有用,"所以我们这些人(而不是精通python的arent)浪费了很多时间,试图弄清楚 找出为什么会出现大量错误...谢谢!
看一下dlib和opencv。两者都是使用python绑定以C ++实现的成熟的计算机视觉框架。这很重要,因为这意味着它依赖引擎盖下的已编译代码,因此比直接用python进行编译要快得多。我相信目前dlib中SVM的实现是基于最近的研究,因此您可能需要考虑这一点,因为使用它可能会获得更好的结果。