利用该方法对图形进行二值化处理,能够很好的除去光线对图片的影响

#include<iostream>
#include<opencv2\opencv.hpp>
using namespace cv;
using namespace std;void thresholdIntegral2(Mat inputMat, Mat outputMat)
{int nRows = inputMat.rows;int nCols = inputMat.cols;// create the integral imageMat sumMat;integral(inputMat, sumMat);int S = MAX(nRows, nCols) / 8;double T = 0.15;// perform thresholdingint s2 = S / 2;int x1, y1, x2, y2, count, sum;int* p_y1, *p_y2;uchar* p_inputMat, *p_outputMat;for (int i = 0; i < nRows; ++i){y1 = i - s2;y2 = i + s2;if (y1 < 0){y1 = 0;}if (y2 >= nRows){y2 = nRows - 1;}p_y1 = sumMat.ptr<int>(y1);p_y2 = sumMat.ptr<int>(y2);p_inputMat = inputMat.ptr<uchar>(i);p_outputMat = outputMat.ptr<uchar>(i);for (int j = 0; j < nCols; ++j){// set the SxS regionx1 = j - s2;x2 = j + s2;if (x1 < 0){x1 = 0;}if (x2 >= nCols){x2 = nCols - 1;}count = (x2 - x1)* (y2 - y1);sum = p_y2[x2] - p_y1[x2] - p_y2[x1] + p_y1[x1];if ((int)(p_inputMat[j] * count) < (int)(sum* (1.0 - T))){p_outputMat[j] = 0;}else{p_outputMat[j] = 255; }}}
}int main()
{Mat src = imread("img2.jpg");Mat grad;cvtColor(src, grad, CV_BGR2GRAY);//Mat bw2 = Mat::zeros(grad.size(), CV_8UC1);thresholdIntegral2(grad, grad);imshow("【二值化图】", grad);imwrite("img2Grad.jpg", grad);waitKey(0); return 0;
}

结果如下图所示:

一般方法进行二值化处理

#include<iostream>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main()
{IplImage *MBDst = cvLoadImage("img2.jpg");IplImage* MBSrc = cvCreateImage(cvGetSize(MBDst), MBDst->depth, MBDst->nChannels);cvCopy(MBDst, MBSrc);cvShowImage("原图", MBSrc);cvThreshold(MBSrc, MBSrc, 120, 255, CV_THRESH_BINARY);cvShowImage("【二值化图】", MBSrc);cvWaitKey(0);return 0;
}

结果如下图所示:

利用opencv对图像进行二值化处理相关推荐

  1. 利用python opencv实现图像自适应二值化

    对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一.例如,灰度大于127的图像设置为1.小于127的设置为0,这种处理便是固定阈值127的二值化处理. 自适应的二值化处理不同于固定阈 ...

  2. 利用Python实现图像的二值化

    目录 1.全局阈值法 1.1主要函数: 1.2全局阈值的代码实现 1.3特点 2.自适应阈值法 2.1主要函数: 2.2实现代码: 2.3特点: 3.OTSU二值化(最大类间方差法) 3.1实现代码: ...

  3. 【OpenCV图像处理】二、图像的二值化操作

    图像的逻辑运算就是将两幅图像的对应像素进行逻辑运算.逻辑运算主要包括 与(AND)或(OR)及补运算.要对灰度图像进行逻辑运算,就要首先对图像进行二值化处理. 二值化的公式如下: 我们对灰度图像进行二 ...

  4. 图像的二值化之python+opencv

    定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果. 一幅图像包括目标物体.背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用 ...

  5. 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))

    目录 一.二值化的概念(实际上就是一个阈值化操作) 1.概念: 2.实现方法 3.常用方法 二.阈值类型 1.常见阈值类型(主要有五种类型) (1)公式描述 (2)图表描述 2.两种特殊的阈值算法(O ...

  6. python-opencv 图像阈值二值化

    本文讲解基于OpenCV-python的图像二值化API及浅显原理讲解 文章目录 一. 阈值 1. 简单阈值 2. 自适应阈值 二. 图像二值化 1. 全局图像二值化 2. 局部图像二值化 3. Ot ...

  7. 图像的二值化原理和实现

    1.  图像的二值化的基本原理 图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果.即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和 ...

  8. OpenCV全局/局部阀值二值化

    1.概念 1.1全局二值化 根据自定义阀值对图像进行二值化处理,即灰度值大于阀值时设改像素灰度值为255,灰度值小于阈值时设该像素灰度值为0 1.2局部二值化 在局部范围内根据特定算法算出局部的阀值, ...

  9. OpenCV大津法二值化

    OpenCV大津法二值化 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化 ...

  10. 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果

    十三种基于直方图的图像全局二值化算法实现 1. 什么是基于直方图的图像全局二值化算法 2. 灰度平均值 3. 百分比阈值(P-Tile法) 3. 基于双峰的阈值 3.1 基于平均值的阈值 3.2 基于 ...

最新文章

  1. msp430入门学习16
  2. 【ACM】杭电OJ 4704 Sum (隔板原理+组合数求和公式+费马小定理+快速幂)
  3. CNN网络加速--Performance Guaranteed Network Acceleration via High-Order Residual Quantization
  4. 怎样用计算机进入手机驱动程序,手机驱动怎么安装?
  5. php实现工厂模式,PHP基于工厂模式实现的计算器实例
  6. linux 内核中断与时钟的冲突 问题 del_timer,Linux内核开发之中断与时钟(三)
  7. linux下线程不需要死循环么,Linux多线程程序死循环问题调试
  8. ++递归 字符串全排列_超全递归技巧整理,这次一起拿下递归
  9. 由几个月前写的(验证码利用ashx一般处理程序来做),修改为不用以一般处理程序...
  10. PAT1119 Pre- and Post-order Traversals(先序后序求中序)
  11. 刷脸即可解锁让iDevice取证不再难如登天
  12. 2.2w字长文详解推荐系统之数据与特征工程,码起来慢慢看
  13. 全国青少年编程等级考试python一级真题2021年3月(含题库答题软件账号)
  14. 【C语言】浮点型数据在内存中的存储方式
  15. R语言实现聚类kmeans
  16. 有CCC认证是不是代表产品的质量好?
  17. 江苏省常州市谷歌高清卫星地图下载
  18. 认知无线电网络的服务质量——蜻蜓算法的应用(Matlab代码实现)
  19. Android中四大组件
  20. 网络系统管理Debian模块||RouterSrv的openvpn配置详解

热门文章

  1. python爬虫:获取12306网站火车站对应三字码
  2. armbian编译安装mentohust 认证锐捷客户端
  3. tiny6410裸机实验第0章--------------开发环境的搭建(USB转串口)
  4. mysql MHA集群安装
  5. FreeBSD安装MySQL
  6. 微信定时自动发消息。每天和你的obj准时说晚安
  7. IE Tab Plus 安装设置说明
  8. WIFI 2.4G及5G信道划分表(附无线通信频率分配表)
  9. Android Wi-Fi 2.4G及5G信道一览表
  10. Java 实现 POS 打印机无驱打印