python计算机视觉——第八章 图像内容分类

本章介绍图像分类和图像内容分类算法。

8.1 K邻近分类法(KNN)

KNN(K-Nearest Neighbor ,K邻近分类法),把要分类的对象(例如一个特征向量)与训练集中已知类标记的所有对象进行对比,并由k近邻对指派到哪个类进行投票。这种方法通常分类效

果较好,但是也有很多弊端:与K-means 聚类算法一样,需要预先设定k 值,k 值的选择会影响分类的性能;此外,这种方法要求将整个训练集存储起来,如果训练集非常大,搜索起来就非常慢。

将定义的类对象添加到名为knn.py 的文件里:

复制代码
class KnnClassifier(object):
    def __init__(self,labels,samples):
        """ 使用训练数据初始化分类器"""
        self.labels = labels
        self.samples = samples

    def classify(self,point,k=3):
        """ 在训练数据上采用k 近邻分类,并返回标记"""
        # 计算所有训练数据点的距离
        dist = array([L2dist(point,s) for s in self.samples])
        # 对它们进行排序
        ndx = dist.argsort()
        # 用字典存储k 近邻
        votes = {}
        for i in range(k):
            label = self.labels[ndx[i]]
            votes.setdefault(label,0)
            votes[label] += 1

        return max(votes)
    
    def L2dist(p1,p2):
        return sqrt( sum( (p1-p2)**2) )
相关推荐
陈嘿萌7 小时前
ECCV 2026 | 南开&OPPO开源 ExpoMotion:首个大规模动态多曝光融合数据集
人工智能·计算机视觉·图像融合·南开大学·新数据集·expomotion·多曝光融合
硅谷秋水10 小时前
人工智能医疗健康机器人研究综述与分析
人工智能·深度学习·计算机视觉·语言模型·机器人
xingyuzhisuan11 小时前
星宇智算 AI 视频工作台・图生视频(首尾帧)・Vidu:双模型可控动态过渡生成应用
人工智能·计算机视觉·音视频
深圳市快瞳科技有限公司12 小时前
个体识别、行为解读、健康管理:多模态宠物AI大模型的场景化落地
人工智能·算法·计算机视觉·大模型·多模态·宠物·宠物ai识别
硅谷秋水15 小时前
WAM-Nav:用于统一视觉导航的非对称潜世界动作建模
深度学习·机器学习·计算机视觉·语言模型·机器人
新新学长搞科研15 小时前
【IEEE出版】2026年计算机视觉与具身智能国际学术会议(CVEI 2026)
计算机视觉·具身智能
等一朵映山红16 小时前
深入理解 OpenCV 卷积与滤波:高斯、中值、双边滤波对比
人工智能·opencv·计算机视觉
Arbori_2621517 小时前
VisionMaster 断续划痕检测全流程算子实操详解
计算机视觉·visionmaster
陈嘿萌17 小时前
ECCV 2026|相机 × 激光雷达 × 4D 雷达:RAF 如何实现恶劣天气下的鲁棒 3D 检测?
人工智能·目标检测·计算机视觉·激光雷达·eccv
Nomarsgo1 天前
研华PPC-6121工业平板电脑在智能港口岸桥控制终端中的应用方案——打造稳定可靠的港口起重设备人机交互与智能调度平台
人工智能·科技·计算机视觉·视觉检测·电脑·人机交互