opencv统计二值图黑白像素个数
#include "iostream"
#include "queue"
#include "Windows.h" #include <opencv2/ml/ml.hpp>
#include "opencv2/opencv.hpp"
#include "Windows.h"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/ml.hpp"
#include "opencv/cv.h"
#include "opencv/ml.h"
#include "opencv/highgui.h"
#include "opencv/cvaux.h"
#include "opencv/cvwimage.h"
#include "opencv/cxcore.h"
#include "opencv/cxmisc.h"
#include "opencv2/cvconfig.h"
#define MAX 30 using namespace cv;
using namespace std;
int color[]; int main(int argc, char *argv[]) {
cv::Mat frame;
cv::Mat back;
cv::Mat fore;
//cv::VideoCapture cap("C:\\C_C++ EX8 code\\Video\\MyVideo.wmv");
cv::VideoCapture cap(0);
cv::Ptr<BackgroundSubtractorMOG2> bg = createBackgroundSubtractorMOG2(); bg->setNMixtures(3);
//bg.bShadowDetection = false;
std::vector<std::vector<cv::Point> > contours; cv::namedWindow("Frame");
cv::namedWindow("Background"); while(1)
{
cap >> frame;
//bg.operator()(frame, fore);
bg->apply(frame, fore,0.01);
cv::erode(fore, fore, cv::Mat());
cv::dilate(fore, fore, cv::Mat());
bg->getBackgroundImage(back);
//cv::findContours(fore, contours, CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
//cv::drawContours(frame, contours, -1, cv::Scalar(0, 0, 255), 2);
threshold(fore, fore, 20, 250, CV_THRESH_BINARY_INV);
//---------------------------------------------------------------
int nRow = fore.rows;
int nCol = fore.cols;
//imshow("img", binaryimg);
memset(color, 0, sizeof(color));
for (int i = 0; i < nRow; i++)
{
uchar *data = fore.ptr<uchar>(i);
for (int j = 0; j < nCol; j++)
{
if (*data == 0)
color[j]++;
*data++;
}
} int high = 300;
Mat histimg(high, nCol, CV_8UC3);
for (int j = 0; j < nCol; j += 2)
{
line(histimg, Point(j, high - color[j]), Point(j, high), Scalar(0, 0, 250), 1);
}
imshow("Hist", histimg);
//---------------------------------------------------------------
//---------------------------------------------------------------
cv::imshow("Foreground", fore);
cv::imshow("Frame", frame);
cv::imshow("Background", back);
if (cv::waitKey(40) >= 0)
break;
}
return 0;
}
opencv统计二值图黑白像素个数的更多相关文章
- 使用OpenCV查找二值图中最大连通区域
http://blog.csdn.net/shaoxiaohu1/article/details/40272875 使用OpenCV查找二值图中最大连通区域 标签: OpenCVfindCoutour ...
- opencv删除二值图中较小的噪点色块
CvSeq* contour = NULL; double minarea = 100.0; double tmparea = 0.0; CFileDialog dlg(true); if (dlg. ...
- 超越OpenCV速度的MorphologyEx函数实现(特别是对于二值图,速度是CV的4倍左右)。
最近研究了一下opencv的 MorphologyEx这个函数的替代功能, 他主要的特点是支持任意形状的腐蚀膨胀,对于灰度图,速度基本和CV的一致,但是 CV没有针对二值图做特殊处理,因此,这个函数对 ...
- S0.4 二值图与阈值化
目录 二值图的定义 二值图的应用 阈值化 二值化/阈值化方法 1,无脑简单判断 opencv3函数threshold()实现 2,Otsu算法(大律法或最大类间方差法) OpenCV3 纯代码实现大津 ...
- 用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪
前言 这个降噪的模型来自 Christopher M. Bishop 的 Pattern Recognition And Machine Learning (就是神书 PRML……),问题是如何对一个 ...
- zw·准专利·高保真二值图细部切分算法
zw·准专利·高保真二值图细部切分算法 高保真二值图细部切分算法,是中国字体协会项目的衍生作品. 说准专利算法,是因为对于图像算法的标准不了解,虽然报过专利,但不是这方面的,需要咨询专 ...
- c语言实现灰度图转换为二值图
将上篇得到的灰度图转换为二值图,读取像素数据,低于某一值置0,否则设置为255,为得到更好的效果不同图片应采用不同的值 /* 2015年6月2日11:16:22 灰度图转换为二值图 blog:http ...
- BMP彩色转成黑色二值图
一天半把彩色bmp转成黑白了. 原理是: 第一步:读出位图数据的偏移位置:即第11个字节,用fseek即可. 然后将偏移位置之前的数据全部写入新的bmp图中. 第二步:用fseek移到位图数据这前,判 ...
- opencv 删除二值化图像中面积较小的连通域
对于上图的二值化图像,要去除左下角和右上角的噪点,方法:使用opencv去掉黑色面积较小的连通域. 代码 CvSeq* contour = NULL; double minarea = 100.0; ...
随机推荐
- 才知道创建数据表的后面int(M)的m居然和存储大小没有关系
之前一直以为,后面m代表有几个字节 MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MyS ...
- CSS 图片加载完成再淡入显示
一.方法 加载完成再显示:借助Image对象的onload事件,加载完时再把src赋给img标签的src: 淡人显示:起始opacity为0,利用transform过度到1 二.代码 <!DOC ...
- Nginx:Pitfalls and Common Mistakes
New and old users alike can run into a pitfall. Below we outline issues that we see frequently as we ...
- 安装weinre在PC端调试移动端
1.使用node安装weinre. 2.启动weinre, weinre --httpPort 8081 --boundHost -all- 3.在浏览器打开 http://localhost:80 ...
- 安卓、swiper标准的文字滚动
溢出滚动基本原理还是relative,absolute. 核心高度 swiper-wrapper 和gun-swiper-slide 的自适应高度成为关键 <style> .gun-s ...
- yourphp搜索代码
HTML代码 <form method="GET" action="index.php?"> //指向地址 <input type=" ...
- AspNetUsers
public class CanDooDbContext : DbContextBase<CanDooDbContext> { protected override void OnMode ...
- shutdown命令用法
首先我们先创建一个txt文件,添加shutdown -r -f -t 0 ,文件点击另存为,选择所有类型,保存格式为“重启.bat”文件. 说明:shutdown命令用法: /r 关闭 ...
- JNDI全面总结
JNDI全面总结原理: 在DataSource中事先建立多个数据库连接,保存在数据库连接池中.当程序访问数据库时,只用从连接池中取空闲状态的数据库连接即可,访问结束,销毁资源,数据库连接重新回到连接池 ...
- centos 7.0 查看所有安装的包
rpm方式安装的包 默认 最小化安装centos 7.0 rpm -qa 查看所有安装的包 [root@localhost ~]# rpm -qa biosdevname-0.5.0-10.el7.x ...