我正在尝试为要训练HOG descriptors
的图片计算SVM
,
我的图片是50 * 50 jpg。
我的问题可能是我通过重命名每个图像文件将以前在数据集中的所有图像从.ppm
文件扩展名转换为.jpg
扩展名。
即使我无法在Stackoverflow上传这里我重命名的.ppm
到.jpg
图像的样本,解析器也说“不支持此格式”。
但另一方面,我可以在我的计算机上预览这些图像(OS X
),我可以通过OpenCV
加载它们,我可以操纵它们,我可以像往常一样在那里循环像素图像。
我相信他们的代码没有错,因为我尝试了不同的图像并且确实有效。
MatOfFloat descriptors = new MatOfFloat();
MatOfPoint locations = new MatOfPoint();
HOGDescriptor hog = new HOGDescriptor();
Mat img = Highgui.imread("/Desktop/11.jpg", Highgui.CV_LOAD_IMAGE_COLOR);
hog.compute(img, descriptors, new Size(50,50), new Size(8,8), locations);
System.out.println(descriptors);
// Result Mat [ 0*1*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x7ffe63c01190, dataAddr=0x0 ]
这是第一次处理.ppm
延期,所以如果有人熟悉我,我会非常感激。
编辑:我上传了我的一张示例图片Here
一个附带问题:当为图像计算HOG Descriptors
时,它应该是灰色空间来训练SVM
,否则如果我将其保留为{{}} {1}}?