我使用opencv读取单色位图图像并将其像素值保存到另一个文本文件中。根据我的知识,单色位图的值为0和1,而不是0到255之间。当我尝试将值保存在文本文件中时,则会存储0和255。如果我将像素值除以255然后我得到0和1但输出是不可接受的,因为它没有形成任何字符(单色位图图像是带有字符的扫描文本文件)。 我认为渠道的深度,类型或数量存在问题,但无法解决。请帮忙。提前谢谢。
这是我的代码:
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include "math.h"
#include <fstream>
using namespace cv;
using namespace std;
int main(int argc,char **argv)
{
ofstream fout("monochrome_file.txt");
Mat img=imread("1_mono.bmp",CV_THRESH_BINARY);
uchar val;int x;
if(img.empty())
{
cout<<"File Not Opened"<<endl;
}
for(int i=0;i<img.rows;i++)
{
for(int j=0;j<img.cols;j++)
{
val=img.at<uchar>(i,j);
x=(int)val;
x=x/255;
fout<<x;
}
}
waitKey();
return 0;
}
答案 0 :(得分:0)
在visual studio中打开monochrome_file.txt而不是记事本。所需的模式将可见。