本实验报告由湖南科技大学王志喜编写,涵盖图形图像课程所有实验题目,包含详细的解答和完整的源代码,适合用于学习参考。
湖南科技大学图形图像实验报告涵盖了多个关键知识点,包括基本的图形变换、OpenGL的应用以及OpenCV的核心功能等内容。
### 关键知识点梳理
#### 1. OpenGL中的图形变换
- **线框立方体**:使用GL_LINES绘制模式在三维空间中用线条表示一个立方体。实现时定义顶点坐标和连接关系,并通过glBegin(GL_LINES)和glEnd()来完成绘图。
- **线框球**:利用球面参数方程生成顶点,或者直接使用OpenGL中的glutSolidSphere()函数简化绘制过程。
- **线框椭球**:类似于线框球的实现方法,但需要考虑缩放变换以形成椭圆形体。
- **犹他茶壶**:一个经典的计算机图形学模型用于测试渲染算法。通过调用如gluNewQuadric()和相关几何函数来生成该模型。
- **多视口演示**:在一个窗口中显示多个不同的视图,使用glViewport()设置不同区域的视图,并切换观察视角。
#### 2. OpenGL的真实感图形
在这一部分,犹他茶壶展示更加真实的渲染效果。此外还有模拟光照照射紫色球体的例子,通过设置光源位置和特性来增强图像的真实性。
- **模拟光照**:使用Phong模型计算每个像素的颜色值以实现真实感的光影效果。
#### 3. OpenCV核心功能
这部分内容涉及了BMP文件读取、显示特定矩形区域的图像等功能。还包括将彩色图像分解为R、G、B三个通道并分别显示灰度图,以及对灰度图进行边缘检测和阈值化等处理。
- **分离颜色通道**:使用split()函数将RGB图像分解成单个的颜色通道,并用imshow()展示每个通道的灰度版本。
#### 4. 图像变换
这一部分介绍了如何利用OpenCV库完成各种几何变换,如旋转、缩放和平移。通过定义相应的矩阵并应用warpAffine或warpPerspective函数来实现图像转换。
- **随机生成浮点数灰度图**:使用randu()生成具有随机值的灰度图像,并对其进行处理。
以上内容详细介绍了图形变换的基本原理和技术在OpenGL和OpenCV中的具体运用。通过这些知识点的学习,学生可以深入理解并掌握图形图像处理技术的应用方法。