最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

openCV中KNN算法的實現(xiàn)

 更新時間:2025年04月14日 10:03:10   作者:2201_75491841  
KNN算法是一種簡單且常用的分類算法,本文主要介紹了openCV中KNN算法的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

OpenCV 是一個開源的跨平臺計算機(jī)視覺庫,它提供了各種用于圖像處理、計算機(jī)視覺任務(wù)的算法和工具,涵蓋圖像濾波、特征提取、目標(biāo)檢測、圖像分割、視頻分析等眾多領(lǐng)域,廣泛應(yīng)用于計算機(jī)視覺相關(guān)的科研和工業(yè)項目中,可幫助開發(fā)者快速實現(xiàn)各種視覺處理功能。

KNN(K-最近鄰)算法是一種簡單且常用的分類算法。其核心思想是:如果一個樣本在特征空間中的K個最相似的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別

KNN算法流程

  • 計算距離:使用向量之間的距離來衡量樣本之間的相似度。常見的距離計算公式有歐式距離、曼哈頓距離等。

  • 升序排序:根據(jù)計算好的距離進(jìn)行升序排序。

  • 取前K樣本:選取距離最近的前K個樣本。

  • 加權(quán)平均:根據(jù)距離對樣本進(jìn)行加權(quán)計算,距離越近,權(quán)重越高。

使用OpenCV實現(xiàn)KNN

以下是一張2000X1000像素的圖片,包含5000個數(shù)字,我們將左邊2500個數(shù)劃分訓(xùn)練集,右邊2500個數(shù)劃分為測試集,構(gòu)建模型訓(xùn)練結(jié)果

首先對圖像進(jìn)行切割并劃分訓(xùn)練集和測試集

import numpy as np
import cv2

img=cv2.imread('digits.png')#讀取名為 digits.png 的圖像文件。
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#將圖像轉(zhuǎn)換為灰度圖

cells=[np.hsplit(row,100) for row in np.vsplit(gray,50)]#將圖像垂直分割50行,水平分割100列
x=np.array(cells)
train=x[:,:50]#劃分訓(xùn)練集
test=x[:,50:100]#劃分測試集

#將數(shù)據(jù)展平并轉(zhuǎn)換為浮點型
?train_new=train.reshape(-1,400).astype(np.float32)
test_new=test.reshape(-1,400).astype(np.float32)

創(chuàng)建標(biāo)簽并對模型進(jìn)行訓(xùn)練

k=np.arange(10)#生成一個數(shù)組 [0, 1, 2, ..., 9]
labels=np.repeat(k,250)#將每個數(shù)字重復(fù)250次,生成標(biāo)簽數(shù)組,形狀為 (2500,)
train_labels=labels[:,np.newaxis]#將標(biāo)簽數(shù)組轉(zhuǎn)換為列向量,形狀為 (2500, 1)
test_labels=np.repeat(k,250)[:,np.newaxis]

knn=cv2.ml.KNearest_create()#創(chuàng)建KNN模型
knn.train(train_new,cv2.ml.ROW_SAMPLE,train_labels)#使用訓(xùn)練數(shù)據(jù)和標(biāo)簽訓(xùn)練模型

測試模型,計算準(zhǔn)確率

ret,result,neighbours,dist=knn.findNearest(test_new,k=3)#對測試數(shù)據(jù)進(jìn)行預(yù)測,k=3 表示使用3個最近鄰居。ret:是否成功執(zhí)行。result:預(yù)測結(jié)果。neighbours:最近的鄰居。dist:與鄰居的距離。
print(ret,result,neighbours,dist)

#計算準(zhǔn)確率
matches=result==test_labels
correct=np.count_nonzero(matches)
accuracy=correct*100.0/result.size
print("當(dāng)前使用KNN識別手寫數(shù)字的準(zhǔn)確率為{}%。".format(accuracy))

最終代碼輸出得到以下結(jié)果

到此這篇關(guān)于openCV中KNN算法的實現(xiàn)的文章就介紹到這了,更多相關(guān)openCV KNN 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python設(shè)計模式之迭代器模式原理與用法實例分析

    Python設(shè)計模式之迭代器模式原理與用法實例分析

    這篇文章主要介紹了Python設(shè)計模式之迭代器模式原理與用法,結(jié)合具體實例形式分析了迭代器模式的概念、原理、定義及使用方法,代碼注釋說明簡單易懂,需要的朋友可以參考下
    2019-01-01
  • Python實現(xiàn)簡單字典樹的方法

    Python實現(xiàn)簡單字典樹的方法

    這篇文章主要介紹了Python實現(xiàn)簡單字典樹的方法,實例分析了Python字典樹的定義、實現(xiàn)與使用技巧,需要的朋友可以參考下
    2016-04-04
  • 一小時學(xué)會TensorFlow2之全連接層

    一小時學(xué)會TensorFlow2之全連接層

    這篇文章主要介紹了TensorFlow2之全連接層,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 在Django中實現(xiàn)添加user到group并查看

    在Django中實現(xiàn)添加user到group并查看

    今天小編就為大家分享一篇在Django中實現(xiàn)添加user到group并查看,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 淺談Python爬蟲原理與數(shù)據(jù)抓取

    淺談Python爬蟲原理與數(shù)據(jù)抓取

    這篇文章主要介紹了淺談爬蟲原理與數(shù)據(jù)抓取,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python3爬蟲中Splash的知識總結(jié)

    Python3爬蟲中Splash的知識總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Python3爬蟲中Splash的知識總結(jié)內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • Python中用字符串調(diào)用函數(shù)或方法示例代碼

    Python中用字符串調(diào)用函數(shù)或方法示例代碼

    字符串作為python中常用的數(shù)據(jù)類型,掌握字符串的常用方法十分必要。下面這篇文章主要給大家介紹了關(guān)于Python中通過字符串調(diào)用函數(shù)或方法的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • python?Gooey庫將命令行程序轉(zhuǎn)換成圖形用戶界面GUI應(yīng)用

    python?Gooey庫將命令行程序轉(zhuǎn)換成圖形用戶界面GUI應(yīng)用

    這篇文章主要為大家介紹了python?Gooey庫將命令行程序轉(zhuǎn)換成圖形用戶界面GUI應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python3.5基于TCP實現(xiàn)文件傳輸

    python3.5基于TCP實現(xiàn)文件傳輸

    這篇文章主要為大家詳細(xì)介紹了python3.5基于TCP實現(xiàn)文件傳輸?shù)拇a,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python人工智能tensorflow函數(shù)tensorboard使用方法

    python人工智能tensorflow函數(shù)tensorboard使用方法

    這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)tensorboard使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評論

延安市| 吴川市| 墨江| 封开县| 福安市| 平阳县| 华阴市| 隆德县| 永靖县| 济阳县| 安化县| 汝城县| 武宣县| 鹰潭市| 绥棱县| 财经| 德州市| 江山市| 西乌珠穆沁旗| 兰考县| 长垣县| 徐州市| 武威市| 尼木县| 海门市| 吴堡县| 金阳县| 上栗县| 吴忠市| 汶上县| 肃南| 博罗县| 河东区| 南召县| 潞西市| 遂昌县| 射洪县| 阳高县| 无为县| 青川县| 新源县|