資源簡介
最鄰近算法KNN識別字符最鄰近算法KNN識別字符最鄰近算法KNN識別字符最鄰近算法KNN識別字符

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include
using?namespace?cv;
using?namespace?ml;
//利用KNN識別字符
int?main()
{
////===============================讀取訓練數據===============================////
????//圖片共有10類
????const?int?classSum?=?26;
????//每類共50張圖片
????const?int?imagesSum?=?10;
//圖片尺寸
const?int?imageRows?=?33;
????const?int?imageCols?=?26;
????//每一行一個訓練圖片
????float?trainingData[classSum*imagesSum][imageRows*imageCols]?=?{{0}};
????//訓練樣本標簽
????float?labels[classSum*imagesSum]={0};
????for?(int?i?=?0;?i?????{
????????//目標文件夾路徑
????????std::string?inPath?=?“E:\\image\\letters\\“;
char?label?=?‘a‘;
????????int?k?=?0;
label?=?label?+?i;
????????inPath?=?inPath?+?label?+?“\\*.jpg“;
????????//用于查找的句柄
????????long?handle;
????????struct?_finddata_t?fileinfo;
????????//第一次查找
????????handle?=?_findfirst(inPath.c_str()&fileinfo);
????????if(handle?==?-1)
????????????return?-1;
????????do
????????{
????????????//找到的文件的文件名
????????????std::string?imgname?=?“E:/image/letters/“;
????????????imgname?=?imgname?+?label?+?“/“?+?fileinfo.name;
//std::cout< ????????????Mat?src?=?imread(imgname?0);
????????????if?(src.empty())
????????????{
????????????????std::cout<<“can?not?load?image?\n“< ????????????????return?-1;
????????????}
//序列化后放入作為樣本矩陣的一行
????????????for(int?j?=?0;?j ????????????{
????????????????trainingData[i*imagesSum?+?k][j]?=?(float)src.data[j];
????????????}
????????????//?設置樣本標簽
labels[i*imagesSum?+?k]?=?label;
????????????k++;
????????}?while?(!_findnext(handle?&fileinfo));
????????_findclose(handle);
????}
????//訓練樣本數據及對應標簽
????Mat?trainingDataMat(classSum*imagesSum?imageRows*imageCols?CV_32FC1?trainingData);
????Mat?labelsMat(classSum*imagesSum?1?CV_32FC1?labels);
//std::cout< //std::cout<
////===============================創建KNN模型===============================////
Ptrmodel?=?KNearest::create();
model->setDefaultK(classSum);
model->setIsClassifier(true);
PtrtrainData?=?TrainData::create(trainingDataMat?ROW_SAMPLE?labelsMat);
model->train(trainData);
//model->save(“E:/image/KNearestModel.xml“);?
////===============================預測部分===============================////
Mat?src?dst;
src?=?imread(“E:/image/image/letters.png“);
if?(src.empty())
{
std::cout<<“can?not?load?image?\n“< return?-1;
}
dst?=?src.clone();
//創建感興趣區域選取右側10列作為預測數據
cvtColor(src?src?COLOR_BGR2GRAY);
blur(src?src?Size(99));
threshold(src?src?210?255?THRESH_BINARY);
Canny(src?src?20?80?3?false);
std::vector>?contours;
std::vectorhierarchy;
findContours(src?contours?hierarchy?RETR_EXTERNAL?CHAIN_APPROX_SIMPLE?Point(00));
for?(int?i?=?0;?i?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4357??2018-02-03?21:07??KNN-letters\code1.cpp
?????文件???????2570??2018-02-03?21:06??KNN-letters\code2.cpp
?????文件????????908??2018-02-03?20:44??KNN-letters\letters\a\250.jpg
?????文件????????921??2018-02-03?20:44??KNN-letters\letters\a\251.jpg
?????文件????????915??2018-02-03?20:44??KNN-letters\letters\a\252.jpg
?????文件????????874??2018-02-03?20:44??KNN-letters\letters\a\253.jpg
?????文件????????914??2018-02-03?20:44??KNN-letters\letters\a\254.jpg
?????文件????????873??2018-02-03?20:44??KNN-letters\letters\a\255.jpg
?????文件????????873??2018-02-03?20:44??KNN-letters\letters\a\256.jpg
?????文件????????917??2018-02-03?20:44??KNN-letters\letters\a\257.jpg
?????文件????????870??2018-02-03?20:44??KNN-letters\letters\a\258.jpg
?????文件????????914??2018-02-03?20:44??KNN-letters\letters\a\259.jpg
?????文件???????1025??2018-02-03?20:44??KNN-letters\letters\b\240.jpg
?????文件???????1065??2018-02-03?20:44??KNN-letters\letters\b\241.jpg
?????文件???????1020??2018-02-03?20:44??KNN-letters\letters\b\242.jpg
?????文件???????1071??2018-02-03?20:44??KNN-letters\letters\b\243.jpg
?????文件???????1013??2018-02-03?20:44??KNN-letters\letters\b\244.jpg
?????文件???????1058??2018-02-03?20:44??KNN-letters\letters\b\245.jpg
?????文件???????1026??2018-02-03?20:44??KNN-letters\letters\b\246.jpg
?????文件???????1017??2018-02-03?20:44??KNN-letters\letters\b\247.jpg
?????文件???????1031??2018-02-03?20:44??KNN-letters\letters\b\248.jpg
?????文件???????1057??2018-02-03?20:44??KNN-letters\letters\b\249.jpg
?????文件????????879??2018-02-03?20:44??KNN-letters\letters\c\230.jpg
?????文件????????871??2018-02-03?20:44??KNN-letters\letters\c\231.jpg
?????文件????????881??2018-02-03?20:44??KNN-letters\letters\c\232.jpg
?????文件????????882??2018-02-03?20:44??KNN-letters\letters\c\233.jpg
?????文件????????879??2018-02-03?20:44??KNN-letters\letters\c\234.jpg
?????文件????????880??2018-02-03?20:44??KNN-letters\letters\c\235.jpg
?????文件????????880??2018-02-03?20:44??KNN-letters\letters\c\236.jpg
?????文件????????873??2018-02-03?20:44??KNN-letters\letters\c\237.jpg
............此處省略264個文件信息
- 上一篇:中文語音系統 TTS5.1
- 下一篇:安裝文件 小巧、實用萬年歷.exe
評論
共有 條評論