機器學習 C++ 的opencv實現SVM圖像二分類的測試 (三)【附源碼】

機器學習 C++ 的opencv實現SVM圖像二分類的測試 (三)
數據集合下載地址:https://download.csdn.net/download/hgaohr1021/89506900
根據上節得到的svm.xml,測試結果為:
在這里插入圖片描述

#include <stdio.h>  
#include <time.h>  
#include <opencv2/opencv.hpp>  #include <iostream> 
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include "opencv2/imgcodecs.hpp"
#include <opencv2/core/utils/logger.hpp>
#include <opencv2/ml/ml.hpp>  
#include <io.h>using namespace std;
using namespace cv;
using namespace cv::ml;void getFiles(string path, vector<string>& files);
int main()
{int result = 0;string filePath = "data\\test_image\\0";vector<string> files;getFiles(filePath, files);int number = files.size();cout << number << endl;string modelpath = "svm.xml";cv::Ptr<cv::ml::SVM> svm;svm = cv::Algorithm::load<cv::ml::SVM>(modelpath);/*CvSVM svm;svm.clear();string modelpath = "svm.xml";FileStorage svm_fs(modelpath, FileStorage::READ);if (svm_fs.isOpened()){svm.load(modelpath.c_str());}*/FileStorage svm_fs(modelpath, FileStorage::READ);if (svm_fs.isOpened()){svm->load(modelpath.c_str());}for (int i = 0; i < number; i++){Mat inMat = imread(files[i].c_str());resize(inMat, inMat, cv::Size(60, 256), (0, 0), (0, 0), cv::INTER_LINEAR);  //將圖片調整為相同的大小Mat p = inMat.reshape(1, 1);p.convertTo(p, CV_32FC1);int response = (int)svm->predict(p);if (response == 1){result++;}}cout << "識別個數:" << result << endl;cout << "識別率:" << setprecision(2) << fixed << double(result) / (double)(number) << endl;getchar();return  0;
}
void getFiles(string path, vector<string>& files)
{long long   hFile = 0;struct _finddata_t fileinfo;string p;if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib & _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)getFiles(p.assign(path).append("\\").append(fileinfo.name), files);}else{files.push_back(p.assign(path).append("\\").append(fileinfo.name));}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}

數據集合下載地址:https://download.csdn.net/download/hgaohr1021/89506900

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41779.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41779.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41779.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡安全應急處理流程

網絡安全應急處理流程是指在發生網絡安全事件時&#xff0c;組織應采取的一系列措施&#xff0c;以快速響應、控制、恢復和調查網絡安全事件&#xff0c;確保業務連續性和數據安全。以下是一個詳細的網絡安全應急處理流程&#xff1a; 1. 準備階段 目標&#xff1a;建立和維護…

yolov5 json 和 txt數據格式關系

訓練階段 和 推理階段數據格式轉換說明 關于yolov5 數據格式一直以來都傻傻分不清楚&#xff0c;這下進行了一個梳理&#xff0c;做了筆記&#xff0c;也希望可幫助到有需要的有緣人~ 轉換部分代碼

大廠面試官贊不絕口的后端技術亮點【后端項目亮點合集(2):消息隊列、ElasticSearch、Mysql等亮點合集】

本文將持續更新~~ 歷史文章&#xff1a; 后端項目亮點合集&#xff08;1&#xff09;&#xff1a;Redis篇_后端項目有什么亮點-CSDN博客 本文的作用&#xff1a; &#xff08;1&#xff09;簡歷優化&#xff1a;針對自己的簡歷&#xff0c;對Redis亮點進行優化升級&#xff0c;…

虛擬機交叉編譯基于ARM平臺的opencv(ffmpeg/x264)

背景&#xff1a; 由于手上有一塊rk3568的開發板&#xff0c;需要運行yolov5跑深度學習模型&#xff0c;但是原有的opencv不能對x264格式的視頻進行解碼&#xff0c;這里就需要將ffmpegx264編譯進opencv。 但是開發板算力有限&#xff0c;所以這里采用在windows下&#xff0c;安…

【chatgpt】 PyTorch中reshape和view

在 PyTorch 中&#xff0c;reshape 和 view 都用于改變張量的形狀&#xff0c;但它們在實現和使用上有一些重要的區別。理解這些區別對于在復雜的張量操作中選擇合適的方法非常關鍵。 view 方法 連續性要求&#xff1a;view 方法要求原始張量在內存中是連續的。如果張量不是連…

從零開始實踐大模型 - 配置環境

本文地址&#xff1a;blog.lucien.ink/archives/549 本文將介紹在面向深度學習時&#xff0c;推薦的環境配置以及一些使用 Linux 的習慣。 本文的部分內容與 Debian 下 CUDA 生產環境配置筆記 有所重疊&#xff0c;但也有些許的不一樣&#xff0c;在正文中不額外注明。 前言 本…

絕緣子陶瓷絕緣子玻色絕緣子聚合物絕緣子檢測數據集VOC+YOLO格式2050張3類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;2050 標注數量(xml文件個數)&#xff1a;2050 標注數量(txt文件個數)&#xff1a;2050 標注…

Debezium系列之:支持在一個數據庫connector采集中過濾某些表的刪除事件

Debezium系列之:支持在一個數據庫connector采集中過濾某些表的刪除事件 一、需求二、相關技術三、參數設置四、消費數據一、需求 在一個數據庫的connector中采集了多張表,部分表存在數據歸檔的業務場景,會定期從表中刪除歷史數據,希望能過濾掉存在數據歸檔這些表的刪除事件…

Ubuntu 22.04遠程自動登錄桌面環境

如果需要遠程自動登錄桌面環境&#xff0c;首先需要將Ubuntu的自動登錄打開&#xff0c;在【settings】-【user】下面 然后要設置【Sharing】進行桌面共享&#xff0c;Ubuntu有自帶的桌面共享功能&#xff0c;不需要另外去安裝xrdp或者vnc之類的工具了 點開【Remote Desktop】…

Orangepi配合IIC驅動OLED屏幕

目錄 一、OLED屏幕 二、Orangepi的IIC接口及OLED屏幕硬件接線 2.1 Orangepi的IIC接口&#xff1a; 2.2 Orangepi與OLED屏幕硬件接線&#xff1a; 三、wiringPi庫示例代碼 3.1 wiringPi庫OLED屏幕示例代碼&#xff1a; 3.2 OLED顯示自己想要的字符&#xff1a; 一、OLED屏…

unix高級編程系列之文件I/O

背景 作為linux 開發者&#xff0c;我們不可避免會接觸到文件編程。比如通過文件記錄程序配置參數&#xff0c;通過字符設備與外設進行通信。因此作為合格的linux開發者&#xff0c;一定要熟練掌握文件編程。在文件編程中&#xff0c;我們一般會有兩類接口函數&#xff1a;標準…

Mysql慢日志、慢SQL

慢查詢日志 查看執行慢的SQL語句&#xff0c;需要先開啟慢查詢日志。 MySQL 的慢查詢日志&#xff0c;記錄在 MySQL 中響應時間超過閥值的語句&#xff08;具體指運行時間超過 long_query_time 值的SQL。long_query_time 的默認值為10&#xff0c;意思是運行10秒以上(不含10秒…

實現基于Spring Boot的Web安全防護

實現基于Spring Boot的Web安全防護 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在當今互聯網應用的開發中&#xff0c;保護用戶數據和系統安全至關重要。S…

阿里云RDS云數據庫庫表恢復操作

最近數據庫中數據被人誤刪了,記錄一下恢復操作方便以后發生時進行恢復. 1.打開控制臺&#xff0c;進入云數據庫實例. 2.進入實例后 &#xff0c;點擊右側的備份恢復&#xff0c;然后看一下備份時間點&#xff0c;中間這邊都是阿里云自動備份的備份集&#xff0c;基本都是7天一備…

詳解「一本通 5.1 練習 1」括號配對(區間DP經典題)

一.題目 二.思路 題目的大意是說:給你一個只由[ ] ( )構成的字符串&#xff0c;請問需要增加多少個字符才能使其變為一個合法的括號序列。 因為添加若干字符使其達到匹配的目的等價于將不匹配的字符去除使得字符串達到匹配的目的 所以這題只需計算出已匹配完成的括號數,再…

中英雙語介紹倫敦金融城(City of London)

中文版 倫敦金融城&#xff0c;通常稱為“金融城”或“城”&#xff08;The City&#xff09;&#xff0c;是英國倫敦市中心的一個著名金融區&#xff0c;具有悠久的歷史和全球性的影響力。以下是關于倫敦金融城的詳細介紹&#xff0c;包括其地理位置、人口、主要公司、歷史背…

機器學習原理之 -- 隨機森林分類:由來及原理詳解

隨機森林分類器是機器學習中一種強大且靈活的集成學習方法。它通過構建多棵決策樹并結合其結果來提高分類精度和穩定性。本文將詳細介紹隨機森林分類器的由來、基本原理、構建過程及其優缺點。 二、隨機森林的由來 隨機森林&#xff08;Random Forest&#xff09;由Leo Breima…

【優化論】約束優化算法

約束優化算法是一類專門處理目標函數在存在約束條件下求解最優解的方法。為了更好地理解約束優化算法&#xff0c;我們需要了解一些核心概念和基本方法。 約束優化的核心概念 可行域&#xff08;Feasible Region&#xff09;&#xff1a; 比喻&#xff1a;想象你在一個園藝場…

基于機器學習的永磁同步電機矢量控制策略-高分資源-下載可用!

基于機器學習的永磁同步電機矢量控制策略 優勢 訓練了RL-Agent&#xff0c;能夠提高電機在非線性負載下的性能。 部分程序 仿真結果 轉矩估計及dq軸電流。 代碼有償&#xff0c;50&#xff0c;需要的可以聯系。

數學建模算法目標規劃

在人們的生產實踐中&#xff0c;經常會遇到如何利用現有資源來安排生產&#xff0c;以取得最大經濟 效益的問題。此類問題構成了運籌學的一個重要分支—數學規劃&#xff0c;而線性規劃(Linear Programming 簡記 LP)則是數學規劃的一個重要分支。特別是在計算機能處理成千上萬個…