opencv图像差分+otsu方法
来源:互联网 发布:caffeine for mac 编辑:程序博客网 时间:2024/05/15 04:31
最近项目中用到了图像差分,到网上一搜,资料大部分为opencv1.0的,可是我使用的是opencv2.46,因此在编程过程中出现不少问题,在进行 otsu处理的时候,要求图像必须是8bit的,可能没注意到这点,折腾了我两天,总算解决啦。下面直接附上代码吧!
#include "stdafx.h"#include <iostream>#include <opencv2\opencv.hpp>using namespace std;using namespace cv;int main(int argc, char* argv[]){Mat oddImg;Mat evenImg;Mat diffImg;//读取图像oddImg = imread("2odd.bmp",CV_LOAD_IMAGE_GRAYSCALE ); //之前总是错误是因为少了一个0evenImg = imread("2even.bmp",CV_LOAD_IMAGE_GRAYSCALE);imshow("奇场图像",oddImg);imshow("偶场图像",evenImg);//差分图像absdiff(evenImg, oddImg, diffImg);imshow("差分图像",diffImg);//二值化处理:自适应阈值otus,自适应阈值threshold(diffImg, diffImg, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU); imshow("二值化图像",diffImg);waitKey(0);return 0;}
之前我因为在读取图像的时候,是直接使用如下的。
oddImg = imread("2odd.bmp");
evenImg = imread("2even.bmp");
imread函数的原型: Mat imread(const string& filename, int flags=1 ),
flags为:
enum{/* 8bit, color or not */ CV_LOAD_IMAGE_UNCHANGED =-1,/* 8bit, gray */ CV_LOAD_IMAGE_GRAYSCALE =0,/* ?, color */ CV_LOAD_IMAGE_COLOR =1,/* any depth, ? */ CV_LOAD_IMAGE_ANYDEPTH =2,/* ?, any color */ CV_LOAD_IMAGE_ANYCOLOR =4};
显然,imread默认标记为:CV_LOAD_IMAGE_COLOR
后来,我加上了标记:CV_LOAD_IMAGE_COLOR ,即0,就可以了。
参考:
1.http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#Mat imread(const string& filename, int flags)
2.http://www.xuebuyuan.com/1528344.html
0 0
- opencv图像差分+otsu方法
- OpenCv图像差分
- 图像差分的方法
- 图像差分的方法
- 转:OpenCv图像差分源码
- OPenCV:采用otsu自适应门限的图像二值化方法
- 类别差分门限法(OTSU法)图像二值化阀值选取
- OpenCv图像差分(算法自己实现)
- 图像差分
- opencv 背景差分
- 视频图像差分检测
- 图像差分 (IplImage *) 版
- 图像分割值OTSU方法介绍
- otsu结合OpenCV实现灰度图像自动阈值处理
- opencv分RGB合并图像
- Otsu方法
- OTSU方法计算图像二值化的自适应阈值
- OTSU方法计算图像二值化的自适应阈值
- shared_ptr的线程安全性---为什么多线程读写 shared_ptr 要加锁?
- 项目中登陆页面的显示
- IOS7 隐藏状态栏 (电池栏)
- 用ASP编制程序完成迅速查询
- 博客开通
- opencv图像差分+otsu方法
- 女孩,请你学会坚强
- ASP.NET2.0中CSS失效解决问答
- linux内核wait_queue深入分析
- 解析Java中静态变量与实例变量的区别
- 不简单的单例模式
- Linux如何查看进程、杀死进程、启动进程等常用命令 .
- 常驻CSDN了
- EXCEL:读取多个WORD文档文件到EXCEL同一工作表