void ReadRaw8(){std::string strFilename = "raw8.raw";int nWidth = 1456;int nHeight = 1096;uint8_t* pRawbuf = new uint8_t[(size_t)nWidth * nHeight];if (!pRawbuf) {std::cout << "ERROR: 开辟内存失败!" << std::endl;return;}FILE* pfile = nullptr;errno_t err_code = fopen_s(&pfile, strFilename.c_str(), "rb");if (!pfile){std::cout << "ERROR: 打开文件失败!" << std::endl;return;}fread(pRawbuf, 1, ((size_t)nWidth * nHeight), pfile);fclose(pfile);pfile = nullptr;cv::Mat img(nHeight, nWidth, CV_8UC1, pRawbuf);cv::namedWindow(strFilename, cv::WINDOW_NORMAL);cv::imshow(strFilename, img);cv::waitKey(0);cv::Mat rgb;cv::Mat gray;cv::cvtColor(img, rgb, cv::COLOR_BayerRG2RGB);cv::imshow(strFilename, rgb);cv::waitKey(0);cv::cvtColor(rgb, gray, cv::COLOR_RGB2GRAY);cv::imshow(strFilename, gray);cv::waitKey(0);
}void ReadRaw10(){// 读取raw10图片std::string strFilename = "raw10.raw";int nWidth = 4208;int nHeight = 3120;short* pRaw10buf = new short[(size_t)nWidth * nHeight];if (!pRaw10buf){std::cout << "ERROR: 开辟内存失败!" << std::endl;return;}FILE* pfile = nullptr;errno_t err_code = fopen_s(&pfile, strFilename.c_str(), "rb");if (!pfile) {std::cout << "ERROR: 打开文件失败!" << std::endl;return;}fread(pRaw10buf, sizeof(pRaw10buf[0]), (size_t)nWidth * nHeight, pfile);fclose(pfile);pfile = nullptr;cv::Mat raw10Img(nHeight, nWidth, CV_16SC1, pRaw10buf);cv::namedWindow(strFilename, cv::WINDOW_NORMAL);cv::imshow(strFilename, raw10Img);cv::waitKey(0);//  以下运行会崩溃,因为rgb和gray都是8U类型的数据,而raw10Img是16S,数据溢出,因此需要转换位raw8之后再转成RGB或BGR图像cv::Mat img_raw8;cv::convertScaleAbs(img, img_raw8, 0.25);cv::imshow(strFilename, img_raw8);cv::waitKey(0);cv::Mat rgb;cv::Mat gray;cv::cvtColor(img_raw8, rgb, cv::COLOR_BayerRG2RGB);cv::imshow(strFilename, rgb);cv::waitKey(0);cv::cvtColor(rgb, gray, cv::COLOR_RGB2GRAY);cv::imshow(strFilename, gray);cv::waitKey(0);
}

需要注意的是:

1. 在debug下运行可能会崩溃,改成release可以正常运行;
2. raw转rgb24时应该选择*2RGB,否则转换后的图片会偏色;
3. 读取raw10图片后如果要转成RGB或BGR图像,需要先转成raw8格式,即保证每个像素的值在0~255之间,否则会抛出异常。

10_OpenCV读取原始raw(raw10和raw8),转换成rgb和灰度图,并显示相关推荐

  1. php读取mht,php解析mht文件转换成html的实例

    php解析mht文件转换成html的实例 发布于 2017-08-07 07:27:31 | 116 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...

  2. php实现wav转mp3,php实现将wav文件转换成图像文件并在页面中显示的方法

    本文实例讲述了php实现将wav文件转换成图像文件并在页面中显示的方法.分享给大家供大家参考.具体分析如下: 需求:将wav文件转换成png文件并且显示出来. Wav_To_Png.php: func ...

  3. Java黑皮书课后题第5章:5.4(将英里转换成千米)编写程序,显示下面的表格(注意:1英里为1.609千米)

    5.4(将英里转换成千米)编写程序,显示下面的表格(注意:1英里为1.609千米) 题目 题目概述 破题 代码 题目 题目概述 5.4(将英里转换成千米)编写程序,显示下面的表格(注意:1英里为1.6 ...

  4. 海康威视IPCamera图像捕获方法:捕获实时流,将实时流解码成YV12,然后转换成RGB

    将他的MFC工程相关的代码抠出来,重组.于是实现了捕获YV12格式的视频流的功能,光有YV12还是不行的,需要将YV12转成YUV4:4:4的,然后再将YUV色度空间转换成RGB色度空间,这个过程是在 ...

  5. Java黑皮书课后题第5章:5.3(将千克转换成磅)编写程序,显示下面的表格(注意:1kg为2.2磅)

    5.3(将千克转换成磅)编写程序,显示下面的表格(注意:1kg为2.2磅 题目 题目概述 破题 代码 感谢 题目 题目概述 5.3(将千克转换成磅)编写程序,显示下面的表格(注意:1kg为2.2磅) ...

  6. 1、编写一个程序,将一个小写字母(如a)转换成相应的大写字母并显示输出。

    import java.util.Scanner; public class Zuoye1 { /** * 编写一个程序,将一个小写字母(如a) * 转换成相应的大写字母并显示输出. * * * * ...

  7. 颜色的整数值转换成RGB值

    最近在研究使用Python操作Excel自动化的过程中,我遇到了一个小问题.为了弄清楚Excel在设置单元格条件格式时候所用的颜色,我使用VBA录制了宏命令,但是单元格和字体的颜色都是使用整数值进行标 ...

  8. Android 将一张CMYK模式的图片转换成RGB模式的图片

    Android系统是不能够显示打印模式(CMYK)的图片的.所以要在Andorid设备下显示CMYK模式的图片我得做法是将其转换成RGB模式的图片,但是通过转换颜色丢失比较大,如果大家有好的办法欢迎指 ...

  9. 十六进制颜色码转换成RGB颜色值

    十六进制颜色码转换成RGB颜色值 相关知识点 0xFF 十六进制 如果转成二进制位:11111111 int值是32位,0的二进制: 00000000000000000000000000000000 ...

最新文章

  1. 医学影像阅读/分析软件FSLeyes安装避坑+核磁共振影像数据处理
  2. 示波器上mode选择开关上的norm和auto是什么意思?
  3. 03-SpringMVC-获得用户请求数据
  4. C++学习总结(函数、类与对象)
  5. 东南亚的IT公司,我劝你善良!
  6. Oracle EBS数据定义移植工具:FNDLOAD
  7. 微信开发者平台如何编写代码_编写超级清晰易读的代码的初级开发者指南
  8. 解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题
  9. python安装多久_(一)安装Python
  10. http.client.ResponseNotReady: Request-sent
  11. java xml转html_如何在Java中将XML文档转换成HTML文档.pdf
  12. 8. 吴恩达机器学习课程-作业8-异常检测和推荐系统
  13. 装饰器python详解_python装饰器详解
  14. TransE算法原理与代码解析(2021-06-22)
  15. Matlab实现均值滤波与FPGA进行对比,并采用modelsim波形仿真
  16. 组态王JAVA,组态王肿么实现点击按钮以后可以实现画面的运行
  17. 关于UI三色配色的心得
  18. 如何上色?怎样才能配出好看的颜色?
  19. Fresco判断是否缓存
  20. 四、RocketMQ的控制台安装

热门文章

  1. Perl-Can't locate Time/HiRes.pm 错误
  2. 解决MAC OS X不识别Kindle Fire
  3. 马云控股“中国文化”什么暗藏玄机?
  4. 数据结构:单链表——带头结点与不带头结点步骤详解
  5. 合并带附件的电子邮件
  6. 主板有电无法启动_主板灯亮,主板电池有电,但无法开机
  7. [XJTUSE]计算机图形学第二章作业,使用OpenGL编程实现DDA、中点画线和Bresenham算法和中点画圆法
  8. 小海龟画图(小猪佩奇)
  9. 华硕笔记本电脑开机进入bios
  10. matlab趣味程序,小学生C++趣味编程 PDF 全资料版