• 大小: 2.07KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 其他  

资源简介


Niblack二值化算法在opencv2下的实现。参考文献:http://www.cnblogs.com/nani/archive/2012/12/12/2814324.html http://blog.csdn.net/lucayhaozi/article/details/9967963 仅供参考。欢迎宝贵意见。

资源截图

代码片段和文件信息

#include “stdafx.h“
#include 

using namespace cv;
//using namespace std;

//参数Win_width窗口宽度,Win_height窗口高度,k为修正系数(通常取-0.1)
void Niblack(Mat &srcImg Mat &binImg int Win_width int Win_height double k)
{
srcImg.convertTo(srcImg CV_64F);
int width = srcImg.cols;
int height = srcImg.rows;
binImg.create(height width CV_64FC1);
for(int j = 0; j < height; j++)
{
double *srcptr = srcImg.ptr(j);
double *dstptr = binImg.ptr(j);
for(int i = 0; i < width; i++)
{
int begin_y = j - Win_height begin_x = i - Win_width;
int end_y = j + Win_height end_x = i + Win_width;
if(begin_y < 0) begin_y = 0;
if(begin_x < 0) begin_x = 0;
if(end_y >= height) end_y = height-1;
if(end_x >= width ) end_x = width -1;
int total = ( end_y - begin_y +1 ) * ( end_x - begin_x +1 );  //该窗口内总的像素点数

double mean = 0;//均值
double std  = 0;//标准差

for(int y = begin_y; y {
double *ptrWin = sr

评论

共有 条评论