opencv4.0+C++读取(.raw)16位图像
编辑环境 vc2019+opencv4.0
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
FILE* fp;
fp = fopen("***.raw", "rb");//打开文件
//创建一个大小与文件大小、类型相同的Mat src,h为src.rows,w为src.cols
Mat src;
src.create(Size(h, w), CV_16UC1);
fread(src.data, sizeof(unsigned short), h * w, fp);//将文件读入src
normalize(src, src, 0, 255, NORM_MINMAX);//将src中0~65535缩放到0~255
src.convertTo(src, CV_8UC1);//将src改为8位,用来显示
imshow("原图", src);
waitKey(0);
return 0;
}
fopen()调用时报错,在项目属性->C/C++->预处理器->预处理器定义->编辑添加下面俩个宏:
_CRT_NONSTDC_NO_DEPRECATE
_CRT_SECURE_NO_WARNINGS
如下图: