对灰度图像进行二值化,传入的图片是手写汉字的截图,通过二值化把字的部分提出来。用ostu进行二值化

#include <stdio.h>
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>
#include<stack>
using namespace std;
using namespace cv;
#include <fstream> #include <sys/uio.h>
#include <dirent.h> int main()
{ struct dirent *dirp;
DIR* dir = opendir("/Users/tanchao/Documents/c++work/myopencv5/myopencv5/image"); //int blockSize = 25;
//int constValue = 10;
while ((dirp = readdir(dir)) != nullptr)
{
if (dirp->d_type == DT_REG &&string(dirp->d_name)!=".DS_Store")//.DS_Store是Mac中隐藏文件,记录这个文件夹的属性,所以我们要跳过这个文件
{
Mat g_srcImage;
g_srcImage = imread("/Users/tanchao/Documents/c++work/myopencv5/myopencv5/image/"+string(dirp->d_name),);//第二个参数0表示灰度图读取
//imshow("test",g_srcImage);
Mat changeMat = Mat::zeros(cv::Size(g_srcImage.cols, g_srcImage.rows), CV_8UC1);//修改之后的图片
for(int i=;i<g_srcImage.rows;i++)
{
for(int j=;j<g_srcImage.cols;j++)
{ //if(int(g_srcImage.at<uchar>(i,j))>150)
//changeMat.ptr<uchar>(i)[j] = 255;
//else
//changeMat.ptr<uchar>(i)[j] = int(g_srcImage.at<uchar>(i,j));
//cout<<int(g_srcImage.at<uchar>(i,j))<<" ";
//adaptiveThreshold(g_srcImage, changeMat, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY_INV, blockSize, constValue); threshold(g_srcImage, changeMat, , , CV_THRESH_OTSU); }
//cout << "\n"<<endl;
}
cout<<"/Users/tanchao/Documents/c++work/myopencv5/myopencv5/change/"+string(dirp->d_name)<<endl;
imwrite("/Users/tanchao/Documents/c++work/myopencv5/myopencv5/quanjuyuzhi/"+string(dirp->d_name),changeMat);//加了用来截图
}
}
closedir(dir);
waitKey();
return ; }

其实也可以用自适应二值化和自己设定阈值进行二值化,具体的可以根据代码中注释部分进行修改。

最新文章

  1. 【无私分享:ASP.NET CORE 项目实战】目录索引
  2. grails 优缺点分析
  3. django xadmin 插件(2) 列表视图新增一功能列
  4. 利用scale9sprite制作动态聊天背景
  5. seajs学习笔记
  6. (菜鸟要飞系列)四,基于Asp.Net MVC5的后台管理系统(zTree绑定Json数据生成树)
  7. Outlook账户迁移帮助
  8. JS Map 简单实现
  9. 轻松解决ubuntu系统引导问题
  10. crontab中使用mysql问题
  11. Windows 8.1 store app 开发笔记
  12. input表单的type属性详解,不同type不同属性之间区别
  13. java并发编程 | 线程详解
  14. ADV190007 - “PrivExchange” 特权提升漏洞的指南
  15. CF1080F Katya and Segments Sets
  16. loading加载动画效果js实现
  17. Android开源库集合(UI效果)
  18. jquery与json的结合
  19. 团体程序设计天梯赛 L2-016. 愿天下有情人都是失散多年的兄妹
  20. ls命令(转)

热门文章

  1. [AH2017/HNOI2017]大佬(动态规划 搜索)
  2. python return 返回多个值
  3. JMeter性能(压力)测试--使用解锁
  4. python学习之----BuildSoup和正则表达式
  5. Html盛放媒体/视频标签
  6. 【Selenium-WebDriver自学】Selenium-RC脚本编写(十)
  7. C#打印0到100的素数
  8. oracle的schema的含义
  9. xshell 设置右键粘贴
  10. 【函数】SAS宏的特殊字符引用【转载】