微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有 HOG 和 Euclidian/SVM 的 Canny edge,用于文件夹中的多个图像

如何解决带有 HOG 和 Euclidian/SVM 的 Canny edge,用于文件夹中的多个图像

26 类每类 500 张图像使用 Otsu 和 Canny 边缘进行识别进行分割,然后使用 HOG 技术提取特征。欧几里得距离、余弦距离和 SVM 使用 python 对其进行分类。我试过下面的代码代码在灰度之后将所有类放入一个文件夹中,并且还有精明的边缘。我无法在文件夹中获取 Hog 功能

这些是面临的挑战:(i) 如何正确使用 HOG 提取特征,我的代码确实提取了任何特征。 (ii) 我希望每个阶段之后的每个类都在一个分离文件夹中,而不是将所有类都放在一个文件夹中 (iii) 我如何使用欧几里得距离、余弦距离和 SVM 进行分类

import cv2
import numpy as np
import glob
import os

training_path='Train_Test_directory/dataset/train'
training_names = os.listdir(training_path)

# Get path to all images and save them in a list
image_paths = []
image_classes = []
class_id = 0

def imglist(path):    
    return [os.path.join(path,f) for f in os.listdir(path)]

#Fill the placeholder empty lists with image path,classes,and add class ID number
for training_name in training_names:
    dir = os.path.join(training_path,training_name)
    class_path = imglist(dir)
    image_paths+=class_path
    image_classes+=[class_id]*len(class_path)
    class_id+=1

grey_list = []
incre=0
for image_path in image_paths:
    image = cv2.imread(image_path,0)  
    grey_list.append(image)
    cv2.imwrite('Train_Test_directory/grey/001'+str(incre)+'.jpg',image)
    incre +=1
canny_list = []   

# Read in each image and convert to grayscale
incre=0
for image_path1 in grey_list:
    canny = cv2.Canny(image_path1,200,255)
    canny_list.append(canny)
    cv2.imwrite('Train_Test_directory/canny/001'+str(incre)+'.jpg',canny)
    incre +=1

HOG_list=[]
incre=0
#creating hog features
from skimage.transform import resize
from skimage.feature import hog

for image_path3 in canny_list:

    fd,hog_image = hog(resize(image_path3,(128,64)),orientations=9,pixels_per_cell=(8,8),cells_per_block=(2,2),visualize=True,multichannel=False)
    HOG_list.append(hog_image)
    cv2.imwrite('Train_Test_directory/hog/001'+str(incre)+'.jpg',hog_image)
    cv2.imwrite('Train_Test_directory/hog/001'+str(incre)+'.jpg',fd)
    incre +=1

canny_list= np.array(canny_list)
HOG_list= np.array(HOG_list)
import numpy as np
import glob
import os

training_path='Train_Test_directory/dataset/train'
training_names = os.listdir(training_path)

# Get path to all images and save them in a list
image_paths = []
image_classes = []
class_id = 0

def imglist(path):    
    return [os.path.join(path,fd)
    incre +=1

canny_list= np.array(canny_list)
HOG_list= np.array(HOG_list)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。