Mac中opencv批量对图片进行二值化
2024-08-25 11:01:20
对灰度图像进行二值化,传入的图片是手写汉字的截图,通过二值化把字的部分提出来。用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 ; }
其实也可以用自适应二值化和自己设定阈值进行二值化,具体的可以根据代码中注释部分进行修改。
最新文章
- 【无私分享:ASP.NET CORE 项目实战】目录索引
- grails 优缺点分析
- django xadmin 插件(2) 列表视图新增一功能列
- 利用scale9sprite制作动态聊天背景
- seajs学习笔记
- (菜鸟要飞系列)四,基于Asp.Net MVC5的后台管理系统(zTree绑定Json数据生成树)
- Outlook账户迁移帮助
- JS Map 简单实现
- 轻松解决ubuntu系统引导问题
- crontab中使用mysql问题
- Windows 8.1 store app 开发笔记
- input表单的type属性详解,不同type不同属性之间区别
- java并发编程 | 线程详解
- ADV190007 - “PrivExchange” 特权提升漏洞的指南
- CF1080F Katya and Segments Sets
- loading加载动画效果js实现
- Android开源库集合(UI效果)
- jquery与json的结合
- 团体程序设计天梯赛 L2-016. 愿天下有情人都是失散多年的兄妹
- ls命令(转)