您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 为Scikit-Learn分类器调整HOG功能

5b51 2022/1/14 8:20:49 python 字数 3738 阅读 500 来源 www.jb51.cc/python

我正在尝试执行此代码来处理70个图像并提取直方图梯度(HOG)功能.这些传递给分类器(Scikit-Learn).但是,会出现错误:hog_image = hog_image_rescaled.resize((200, 200), Image.ANTIALIAS) TypeError: an integer is required 我不明白为什么,因为尝试使

概述

我正在尝试执行此代码来处理70个图像并提取直方图梯度(HOG)功能.这些传递给分类器(Scikit-Learn).

但是,会出现错误

hog_image = hog_image_rescaled.resize((200,200),Image.ANTIALIAS)
TypeError: an integer is required

我不明白为什么,因为尝试使用单个图像正常工作.

#Hog Feature

from skimage.feature import hog
from skimage import data,color,exposure
import cv2
import matplotlib.pyplot as plt
from PIL import Image
import os
import glob
import numpy as np
from numpy import array

listagrigie = []

path = 'img/'
for infile in glob.glob( os.path.join(path,'*.jpg') ):
    print("current file is: " + infile )
    colorato = Image.open(infile)
    greyscale = colorato.convert('1')

    #hog feature
    fd,hog_image = hog(greyscale,orientations=8,pixels_per_cell=(16,16),cells_per_block=(1,1),visualise=True)

    plt.figure(figsize=(8,4))
    print(type(fd))
    plt.subplot(121).set_axis_off()
    plt.imshow(grigiscala,cmap=plt.cm.gray)
    plt.title('Input image')

    # Rescale histogram for better display
    hog_image_rescaled = exposure.rescale_intensity(hog_image,in_range=(0,0.02))
    print("hog 1 immagine shape")
    print(hog_image_rescaled.shape)

    hog_image = hog_image_rescaled.resize((200,Image.ANTIALIAS)    
    listagrigie.append(hog_image)
    target.append(i)

print("ARRAY of gray matrices")

print(len(listagrigie))
grigiume = np.dstack(listagrigie)
print(grigiume.shape)
grigiume = np.rollaxis(grigiume,-1)
print(grigiume.shape)

from sklearn import svm,metrics

n_samples = len(listagrigie)
data = grigiume.reshape((n_samples,-1))
# Create a classifier: a support vector classifier
classifier = svm.SVC(gamma=0.001)

# We learn the digits on the first half of the digits
classifier.fit(data[:n_samples / 2],target[:n_samples / 2])

# Now predict the value of the digit on the second half:
expected = target[n_samples / 2:]
predicted = classifier.predict(data[n_samples / 2:])
print("expected")

print("predicted")

总结

以上是编程之家为你收集整理的python – 为Scikit-Learn分类器调整HOG功能全部内容,希望文章能够帮你解决python – 为Scikit-Learn分类器调整HOG功能所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶