IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于OpenCV简易检测硬币个数 -> 正文阅读

[人工智能]基于OpenCV简易检测硬币个数

背景:在我们生活中常常需要我们用肉眼来计算某些物品的数量,如果通过人工操作会产生:①.效率低下;②.长时间的工作会导致眼睛疲劳导致错误的计算;为此,我们可以使用图像处理来检测方便我们.

代码如下:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

Mat srcImage; //源图
Mat dstImage; //目标图
Mat grayImage;//灰度图
int Coin = 0; //硬币个数

string intToString(int number)
{
?? ?ostringstream ss;
?? ?ss << number;
?? ?return ss.str();
}

int main()
{
?? ?//载图
?? ?srcImage = imread("D:/photoes/coin.png");
?? ?if (srcImage.empty())
?? ?{
?? ??? ?cout << "fail to read the Image!" << endl;
?? ??? ?return -1;
?? ?}
?? ?//色彩空间转换
?? ?cvtColor(srcImage, grayImage,COLOR_BGR2GRAY);
?? ?//平滑滤波降噪
?? ?blur(grayImage, dstImage,Size(3,3));
?? ?//?? ?imshow("平滑降噪",dstImage);
?? ?//使用大津法阈值分割前景与背景
?? ?threshold(dstImage,dstImage,0,255,THRESH_OTSU);
?? ?//?? ?imshow("阈值分割",dstImage);
?? ?//孔洞填充
?? ?//floodFill(dstImage,Point(0,0),Scalar(255));
?? ?//imshow("空洞填充",dstImage);
?? ?
?? ?vector<vector<Point>> contours;
?? ?vector<Vec4i> hierarchy;?? ?
?? ?findContours(dstImage,contours,hierarchy,RETR_EXTERNAL,CHAIN_APPROX_SIMPLE);
?? ?vector<vector<Point>> contours_poly(contours.size());
?? ?for (int i = 0; i < contours.size(); i++)
?? ?{
?? ??? ?approxPolyDP(contours[i], contours_poly[i], 3, true);
?? ??? ?//drawContours(dstImage, contours_poly, i, Scalar(255));
?? ??? ?Point2f center;
?? ??? ?float radius;
?? ??? ?minEnclosingCircle(contours_poly[i], center, radius);
?? ??? ?if (radius < 20)
?? ??? ??? ?continue;
?? ??? ?circle(dstImage,center,radius,Scalar(255),4);
?? ??? ?circle(srcImage, center, radius, Scalar(0,0,255), 1);
?? ??? ?Coin++;
?? ?}
?? ?//imshow("找轮廓填轮廓",dstImage);
?? ?string text = "detected coin's number:" + intToString(Coin);
?? ?int fontFace = FONT_HERSHEY_COMPLEX;
?? ?double fontScale = 1;
?? ?int thickness = 1;

?? ?Size textSize = getTextSize(text, fontFace, fontScale, thickness, 0);
?? ?Point org = Point(0, textSize.height);
?? ?putText(srcImage, text, org, fontFace, fontScale, Scalar(0,0,255), 1, 8);

?? ?imshow("原始图", srcImage);
?? ?waitKey(0);
}?? ?
?

效果图:

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:49:09  更:2021-08-02 10:49:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 11:26:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码