数字图像处理实验1 | 基本项目的创建以及RAW文件的读取

数字图像处理实验报告

实现Raw图像的读取、显示和存储

能够熟练使用Visual C++进行MFC编程 实现Raw图像的读取、显示和存储 加深对数字图像的理解

实验环境:Visual Studio 2019 
所用语言:C++

1. 在已经安装了VisualStudio2019的前提下,首先确认MFC组件已经安装:
安装MFC组件
在这里插入图片描述

2. 新建项目
选择 MFC项目,选择应用类型与项目风格为:单个文件、MFC standard
创建即可

3. 完成如下配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上几步实际上是向View的类中添加了若干可通过项目自身调用的函数如“onSaveAs”。

4. 进行编程:
主要是在对应的View文件中进行,首先在代码框架中增加自己的代码,记得在库函数之中加入相应的定义,分别是Raw图像的读取、显示和存储函程序。

(1) 灰色方形图像的显示:
主要代码:

m_Nsize = (int)sqrt(double(ndwSizeRaw));
	m_Msize = m_Nsize;
	
while (m_Msize * m_Nsize != int(ndwSizeRaw) || m_Nsize % 4 != 0)
	{
		m_Nsize += 1;
		m_Msize = int(int(ndwSizeRaw) / m_Nsize);
	}
grey = *(m_pImage + m_Nsize*i + j);
			pDC->SetPixelV(10 + j, 10 + i, RGB(grey, grey, grey));

效果:

(2) 彩色图:
读入数据时,由于数据以(R,G,B)三个一组,在对角标进行标定时要除以三。
因为灰度图像每一个像元一个数字:

而彩色图像则是每个像元三个数字作为一组(即RGB):

在这里插入图片描述

所以要对于从图像获取的每个像素的原始坐标除以3取整获得这个像元所在真实坐标。
主要代码:

double len = double(ndwSizeRaw) / 3;
	m_Nsize = (int)sqrt(len);
blue = *(m_pImage + m_Nsize * i * 3 + j * 3);
			green = *(m_pImage + m_Nsize * i * 3 + j * 3 + 1);
			red = *(m_pImage + m_Nsize * i * 3 + j * 3 + 2);
			pDC->SetPixelV(10 + j, 10 + i, RGB(blue, green, red));

效果图:

在这里插入图片描述
本次实验主要代码(Test1View.cpp):请点击这里

本次实验使用VC++,对于Raw类的灰度、彩色图像进行了读取、显示、存储的操作,加深了对于数字图像的理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值