资源简介
利用VS2010编写的大米计数程序,用Opencv库中的函数进行图像处理,可避免小颗粒干扰
代码片段和文件信息
#include
//opencv highgui 模块头文件
#include
//opencv图像处理头文件
#include
using namespace cv;
//包含cv命名空间
int main()//控制台应用程序的入口函数
{
//载入原图
Mat srcImage=imread(“cell1.jpg“);
if(!srcImage.data)
{
printf(“读取图片错误!\n“);
return false;
}
//显示原图
imshow(“[原图]“srcImage);
//转为灰度图
Mat grayImage;
cvtColor(srcImagegrayImageCV_BGR2GRAY);
imshow(“[灰度图]“grayImage);
//阈值分割
int ThresholdValue=50;//注意:分割阈值需自己调整
Mat threshImage;
threshold(grayImagethreshImageThresholdValue2550);
imshow(“【二值化效果图】“threshImage);
//进行闭运算
Mat element= getStructuringElement(MORPH_RECT Size(8 8));
//进行形态学操作
morphologyEx(threshImagethreshImage MORPH_CLOSEelement);
imshow(“【形态学效果图】“threshImage);
//查找轮廓
//定义轮廓和层次结构
vector> contours;
vector hierarchy;
//查找轮廓
findContours(threshImagecontourshierarchyCV_RETR_LIST CV_CHAIN_APPROX_SIMPLE);
int number=0index =0;
int num1=contours.size();
Mat dstImage= Mat::zeros( threshImage.size() CV_8UC3 );
for(; index >= 0; index = hierarchy[index][0] )//hierarchy[index][0]表示第
//index个轮廓的后一个轮廓的索引编号
{
int num1=contours[index].size();//将第index个轮廓的像素值赋值给num1
if((num1<150)&&(num1>20))//给一个阈值,用于去掉小斑点的干扰和细胞叠加的干扰
{
Scalar color = Scalar( rand()&255 rand()&255 rand()&255 );
//此句代码的OpenCV2版为:
drawContours( dstImage contoursindex color CV_FILLED 8 hierarchy 0 Point());
//此句代码的OpenCV3版为:
//drawContours( dstImage contours index color FILLED 8 hierarchy );
number++;
}
else if((num1>150)&&(num1<250))//给一个阈值区分出两个细胞叠加
{
Scalar color = Scalar( rand()&255 rand()&255 rand()&255 );
//此句代码的OpenCV2版为:
drawContours( dstImage contoursindex color CV_FILLED 8 hierarchy 0 Point());
//此句代码的OpenCV3版为:
//drawContours( dstImage contours index color FILLED 8 hierarchy );
number=number+2;
}
}
imshow(“【轮廓效果图】“dstImage);
std::cout<<“Number is:“< std::cout<<“Number is:“< //std::cout<<“Number is:“< //erode(threshImagethreshImageelement );
//morphologyEx(threshImagethreshImage MORPH_OPEN element);
//显示效果图
//显示效果
waitKey(0);
return 0;
}
//---------使用说明-------
//注意1:将需要计数的图片放到count.cpp文件同一个文件夹下,并把文件main函数第一行的图片名“cell1.jpg”换成所需要的图片名。
//注意2:二值化分割阈值 ThresholdValue需要自己根据尝试慢慢调整
//注意3:画出轮廓时的干扰阈值也需要自己调整
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-04-13 21:06 Opencv图像计数\
目录 0 2017-04-13 21:07 Opencv图像计数\Debug\
文件 70656 2017-04-13 21:07 Opencv图像计数\Debug\Opencv图像计数.exe
文件 590980 2017-04-13 21:07 Opencv图像计数\Debug\Opencv图像计数.ilk
文件 969728 2017-04-13 21:07 Opencv图像计数\Debug\Opencv图像计数.pdb
目录 0 2017-04-13 21:06 Opencv图像计数\Opencv图像计数\
目录 0 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\
文件 7828 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\CL.read.1.tlog
文件 292 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\CL.write.1.tlog
文件 381 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\Opencv图像计数.exe.intermediate.manifest
文件 63 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\Opencv图像计数.lastbuildstate
文件 2873 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\Opencv图像计数.log
文件 713 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\Opencv图像计数.vcxprojResolveAssemblyReference.cache
文件 0 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\Opencv图像计数.write.1.tlog
文件 560 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\cl.command.1.tlog
文件 213014 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\count.obj
文件 2762 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\li
文件 6464 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\li
文件 522 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\li
文件 432 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\mt.command.1.tlog
文件 704 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\mt.read.1.tlog
文件 246 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\mt.write.1.tlog
文件 330752 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\vc100.idb
文件 528384 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Debug\vc100.pdb
文件 3229 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Opencv图像计数.vcxproj
文件 943 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\Opencv图像计数.vcxproj.filters
文件 143 2017-04-13 21:06 Opencv图像计数\Opencv图像计数\Opencv图像计数.vcxproj.user
文件 46898 2017-04-09 21:22 Opencv图像计数\Opencv图像计数\cell1.jpg
文件 2811 2017-04-13 21:07 Opencv图像计数\Opencv图像计数\count.cpp
文件 11554816 2017-04-13 21:08 Opencv图像计数\Opencv图像计数.sdf
文件 921 2017-04-13 21:06 Opencv图像计数\Opencv图像计数.sln
............此处省略4个文件信息
相关资源
- 头部姿态估计数据集
- 数学建模之全球环境统计数据一
- shanghaitech数据集
- 自己动手设计数据库
- 篮球竞赛30s计数器
- 四位数字频率计数码管显示.zip
- 电赛F题纸张计数显示装置全套资料打
- 2019TI杯全国大学生电子设计大赛F题
- OpenCV几包计数
- 2019TI杯全国大学生电子设计大赛F题
- CSRNet-pytorch.zip
- 网站kpi统计数据
- 雨流计数法的基本原理
- 基于单片机的篮球计数器
- 24秒篮球倒计时计数器
- 数字电路课程设计数字抢答器
- 基于51单片机的心率脉搏计源码+电路
- 51单片机 啤酒生产线计数器
- 中国能源数据库-年度数据2006-2016.
- 数字逻辑课程设计数字密码锁
- Verilog自顶向下60进制计数FPGA)
- Verilog自顶向下设计24进制计数器FPGA)
- quartus用jk触发器设计一个步进码计数
- 同步可逆计数器和序列检测器数字电
- RainFlow雨流计数法计算材料疲劳强度
- 课程设计数字音乐盒
- 微机原理课程设计模拟计数器运算
- 编程统计数据区中正数、零和负数的
- 单片机课程设计数字电压表,有软件
- INT0中断计数
评论
共有 条评论