日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV神经网络ANN代码编译运行与解读(二)

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV神经网络ANN代码编译运行与解读(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【轉載自】《OpenCV筆記(4)實現神經網絡(ANN)》
作者的原文參考了:《OpenCV中使用神經網絡 CvANN_MLP》

實際上的預測結果是并非一個確定值,所以即使用訓練集去做測試,也可能出現不完全匹配的情況。(后續需進一步實驗證實)

備份代碼在此:

#include <stdio.h> #include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/imgcodecs/imgcodecs.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/ml/ml.hpp"using namespace cv; using namespace ml; using namespace std;int main() {int width = 512, height = 512;Mat img = Mat::zeros(height, width, CV_8UC3);//建立訓練樣本float train_data[6][2] = {{500,60},{245,40},{480,250},{160,380},{400,25},{55,400}};float labels[6] = { 0, 0, 0, 1, 0, 1 }; Mat train_data_mat(6, 2, CV_32FC1, train_data);Mat labels_mat(6, 1, CV_32FC1, labels);Mat layers_size = (Mat_<int>(1, 3) << 2, 6, 1);//模型創建和參數設置Ptr<ml::ANN_MLP> ann = ml::ANN_MLP::create();//創建一個空模型ann->setLayerSizes(layers_size);ann->setTrainMethod(ml::ANN_MLP::BACKPROP, 0.1, 0.1);ann->setActivationFunction(ml::ANN_MLP::SIGMOID_SYM);ann->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 10000, 1e-6));//設置訓練數據并訓練分類器Ptr<TrainData> tData = TrainData::create(train_data_mat, ROW_SAMPLE, labels_mat);ann->train(tData);//顯示分類的結果Vec3b green(0, 255, 0), blue(255, 0, 0);for (int i = 0; i<img.rows; ++i) {for (int j = 0; j<img.cols; ++j) {Mat sample_mat = (Mat_<float>(1, 2) << j, i);Mat response_mat;ann->predict(sample_mat, response_mat);float response = response_mat.ptr<float>(0)[0];if (response > 0.5) {img.at<Vec3b>(i, j) = green;}else if (response < 0.5) {img.at<Vec3b>(i, j) = blue;}}}//畫出訓練樣本數據int thickness = -1;int lineType = 8;circle(img, Point(500, 60), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(245, 40), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(480, 250), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(160, 380), 5, Scalar(0, 0, 255), thickness, lineType);circle(img, Point(400, 25), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(55, 400), 5, Scalar(0, 0, 255), thickness, lineType);imshow("Example", img);waitKey(0); }

總結

以上是生活随笔為你收集整理的OpenCV神经网络ANN代码编译运行与解读(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。