【数字图像处理技术与应用】2023-2024上图像处理期中-云南农业大学

本文主要是介绍【数字图像处理技术与应用】2023-2024上图像处理期中-云南农业大学,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、填空题(每空2 分,共 30 分)

1、图像就是3D 场景在 二维 平面上的影像,根据其存储方式和表现形式,可以将图像分为 模拟 图像和数字图像两大类;

2、在用计算机对数字图像处理中,常用一个 二维 数组来存放图像数据,其大小与数字图像的大小一致(相同)

3、数字图像按存储格式可分为点位图和矢量(矢量图)

4、对于图像f(x, y)=xy2+3x ,它在点(x, y)处的梯度为▽f (x, y)= [y2+3,2xy]

5、图像数字化包括2 个过程:采样和 量化

6、傅立叶变换除了用于转换数字图像的图像信息,还能将 微分 方程转换成线性方程;

7、一幅基于3 基色 R,G,B 的 16 位颜色深度点位图,其颜色数量为 216

8、 GIF 文件可以用来存储简单的动画,网页动画与QQ 表情就是借助它实现的;

9、可以通过 阈值 变换将一幅灰度图转换成黑白图;

10、一幅图形经过离散傅立叶变换后,低频信号集中于频域的 中心(中心区域)

11、图像锐化的微分法,主要有 梯度 法和拉普拉斯法。

12、集合A={a ,b ,c} ,B={b ,c ,d} ,则集合 A⊕(异或)B= {a,b}

13、形态学图像处理中的开操作(Opening)A B ,相当于先用 B 对 A 进行腐蚀,然后用 B 对腐蚀结果进行 膨胀

二、判断题,正确打√ , 错误打 ⅹ(每题 1 分,共 10 分)

1、数字图像处理与图形学,研究的内容大致相同,方法也大致相同;( × )

2、饱和度是指颜色的纯度,即掺入白光的程度,指颜色的深浅程度;( √ )

3、傅立叶变换的结果是复数;( √ )

4、灰度图像的像素值只能是0 或 1; ( × )

5、伪彩色图像是灰度图象经过伪彩色处理后得到的,其目的是为了增强图像的视觉效果;( × )

6、图像锐化,经常采用卷积模板进行数字化处理,以提高处理速度和程序的通用性;( √ )

7、灰度线性变换的变换曲线,当斜率倾角小于45 度时,是扩展原图像的灰度动态范围;( × )

8、灰度线性变换中的削波变换,通常用于将灰度图像转换成黑白图;( × )

9、一维FFT 变换算法的时间复杂度为 N*log2N;( √ )

10、多图像平均法是利用同一景物的多幅图像取平均来消除噪声产生的高频成分。( √ )

三、简答题(每小题5 分,共 20 分)

1、试描述灰度图像与彩色图像的区别;

答:灰度图像在黑与白之间,有过渡灰色信息,但与彩色图像相比,仅有灰度和灰度的浓暗信息,没有颜色信息,以人眼对灰度的敏感程度,只能分辨约60 级 左右的灰度信息,一般存储灰度像素信息仅需 1 字节 8 位二进制;彩色图像除了 有灰度信息,还有颜色信息,计算机存储颜色信息通常采用 RGB 颜色模型。

2、下面左图是一张正常的女孩照片,右边是另一张对应女孩的直方图,请说出该直方图所对应女孩的照片的对比度和动态范围存在什么问题。

答:动态范围过窄,图像过暗;

3、请计算不定积分公式: ∫ ex sinxdx (偶数学号) , ∫ ex cosxdx (奇数学号)

偶数学号:

\int e^{x} \sin x \ dx = -e^{x} \cos x + \int e^{x} \cos x \, dx \\ -e^{x} \cos x + \left( e^{x} \sin x - \int e^{x} \sin x \, dx \right) \\ -e^{x} \cos x + e^{x} \sin x - \int e^{x} \sin x \, dx \\ -e^{x} \cos x + (e^{x} \sin x - \left( -e^{x} \cos x \right)/2

奇数学号:

\int e^{x} \cos x \, dx = e^{x} \sin x - \int e^{x} \sin x \, dx \\ e^{x} \sin x + \left( e^{x} \cos x - \int e^{x} \cos x \, dx \right) \\ e^{x} \sin x + (e^{x} \cos x + \left( -e^{x} \sin x \right)/2

4 、根据以下的傅立叶变换蝶形单元,请推断 F(0)和 F(4)的计算公式。

答:以上蝶形运算单元的公式如下:

F(0)=G(0)+H(0)W08

F(4)=G(0)-H(0)W08

四、一副模拟彩色图像经平板扫描仪后获得一副彩色数字图像,其分辨率为1024×768 像素。 若采用 RGB 彩色空间,红、绿、蓝三基色的灰度等级为 8bit,在无压缩的情况下,在计算机 中存储该图像将占用多少BYTE 的存储空间?当用 PHOTOSHOP 图像处理软件去掉图像的彩色信 息,只留下灰度信息,灰度等级为 8bit,在无压缩的情况下,存储图像将占用多少 bit 的存储空间?(5 分)

答:
(1)1024 x 768 x 8 x 3/8BYTE = 1024 x 768 x 3BYTE=3 x 768KB

(2)1024 x 768 x 8bit

五、利用右边半径为 1 的小圆对左边边长为 200 ,带有 2 个内孔的正方形施加膨胀运算,请画出膨胀运算后的图形。(5 分)

答:

六、请用左图的梯度算子模板给右图的 6x6 像素灰度图进行梯度锐化处理。(s 分)

答:

七、一原始图像共 8 个灰度级,其概率分布如下表:

灰度级 rk

r0=0

r1= 1/7

r2=2/7

r3=3/7

r4=4/7

r5=5/7

r6=6/7

r7= 1

像素数量 nk

790

1023

850

656

329

245

122

81

概率分布 P(rk)

0.19

0.25

0.21

0.16

0.08

0.06

0.03

0.02

原灰度级

变换函数 T(rk)值

像素数量

量化级

新灰度级及像素数量

新灰度级的像素概率分布

r0=0

T(r0)=S0=0.19

790

0

0

r1= 1/7

T(r1)=S1=

1023

1/7=0. 14

r0 s1

0.19

r2=2/7

T(r2)=S2=

850

2/7=

r3=3/7

T(r3)=S3=

656

3/7=

r1 s3

0.25

r4=4/7

T(r4)=S4=

329

4/7=

r5=5/7

T(r5)=S5=

245

5/7=

r2 s5

0.21

r6=6/7

T(r6)=S6=

122

6/7=

r3 、r4 → s6

0.16+0.08

r7= 1

T(r7)=S7=

81

7/7= 1

r5 、r6 、r7 → s7

0.06+0.03+0.02

请仔细填写下图的直方图均衡化过程:(5 分)

答题要求:请在填表过程中,用箭头标明均衡化前后的灰度级对应关系;

注:1、原灰度级为 r0 、r1…r6 、r7 ,转换后的灰度级为:S0 ’、S1 ’、S2 ’…

2、直方图均衡化后,灰度级数量可能会较均衡化以前减少;

八、(C 语言版)请写一 C 代码片断,实现一幅彩色图像灰度化的处理(10 分)

初始条件:1 、像素彩色信息已存储于数组

struct RGB {unsigned char R;unsigned char G;unsigned char B;};struct RGB A[128][128]中;

2 、转换后的图像信息应存储于数组 unsigned char B[128][128]中;

答题要求:1 、请按要求的初始条件写出彩色图像灰度化的处理代码,不必写主函数,只需写出符合题目

要求的关键代码;

注意事项:1 、如果照抄实验代码,与题目所给的原始图像数组和处理后的图像信息数组不符,不能给分;

答:

#include <stdint.h>// 定义RGB结构体,用于存储彩色像素的RGB值
struct RGB {unsigned char R; // 红色分量unsigned char G; // 绿色分量unsigned char B; // 蓝色分量
};// 假设A数组已经填充了彩色图像的像素数据
struct RGB A[128][128];
// B数组用于存储灰度图像数据
unsigned char B[128][128];// 将彩色图像转换为灰度图像的函数
void convertToGrayscale() {for (int i = 0; i < 128; ++i) {for (int j = 0; j < 128; ++j) {// 计算RGB分量的平均值,得到灰度值unsigned char gray = (A[i][j].R + A[i][j].G + A[i][j].B) / 3;// 将计算出的灰度值赋给B数组,存储灰度图像信息B[i][j] = gray;}}
}// 注意:convertToGrayscale函数假设A数组已经用图像数据填充。
// 在主程序中初始化A数组后,调用此函数。

(Python 语言版)请写一 Python 代码片断,实现一幅彩色图像的灰度化处理(10 分)

import cv2img = cv2.imread('2.jpg', 1)i=j=0sp=img.shape#请在此处填写彩色图像灰度化的处理代码,包括循环语句cv2.imshow('image',img)

注:1 、读取的彩色图形文件为 2.jpg ,读取的图像信息存储于对象数组 img ,已经是彩色图像信息;

2 、图像 x 方向分辨率为 sp[0],y 方向分辨率为 sp[1] ,转换后的阈值化图形存储在 img;

3 、坐标(x,y)的像素的颜色信息存储于 img[x][y] ,其中 img[x][y][0]是蓝色 ,img[x][y][1]是绿色,

img[x][y][2]是红色;

答:

import cv2
import numpy as np# 读取彩色图像
img = cv2.imread('2.jpg', 1)# 获取图像的尺寸
sp = img.shape# 循环处理每个像素
for x in range(sp[0]):for y in range(sp[1]):# 获取像素的BGR颜色值(b, g, r) = img[x, y]# 计算灰度值,这里使用常见的加权平均法gray = int(0.299 * r + 0.587 * g + 0.114 * b)# 设置像素为灰度值img[x, y] = (gray, gray, gray)# 在窗口中显示灰度化后的图像
cv2.imshow('Grayscale Image', img)# 等待按键后关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

九、(C 语言版)请写一 C 代码片断,实现一幅灰度图像的阈值化处理(10 分)

初始条件:1 、像素灰度信息已存储于数组 unsigned char A[128][128]中;

2 、转换后的图像信息应存储于数组 unsigned char B[128][128]中;

3 、阈值 a= 120 ,灰度大于阈值时,灰度取 220 ,小于阈值时,灰度取 0;

答题要求:1 、请按要求的初始条件写出灰度图像的阈值化处理代码,不必写主函数,只需写出符合题目

要求的关键代码;

答:

unsigned char A[128][128]; // 假设这是输入的灰度图像
unsigned char B[128][128]; // 输出的图像
int i, j;
unsigned char a = 120; // 阈值for(i = 0; i < 128; i++) {for(j = 0; j < 128; j++) {if(A[i][j] > a)B[i][j] = 220; // 灰度大于阈值时,灰度取220elseB[i][j] = 0;   // 灰度小于等于阈值时,灰度取0}
}

2 、请绘出该灰度线性变换的变换曲线。

答:

注意事项:1 、如果照抄实验代码,与题目所给的原始图像数组和处理后的图像信息数组不符,不能给分;

(Python 语言版)请写一 Python 代码片断,实现一幅灰度图像的阈值化处理(10 分)

以下是代码片段,请填写 Python 版的灰度图像阈值化处理的代码:

import cv2img = cv2.imread('2.jpg', 1)i=j=0sp=img.shape#请在此处填写灰度图像的阈值化代码,包括循环语句cv2.imshow('image',img)

注:1 、阈值 a= 120 ,灰度大于阈值时,灰度取 220 ,小于阈值时,灰度取 0;

2 、读取的灰度图形文件为 2.jpg ,读取的图像信息存储于对象数组 img ,已经是灰度图像,其 R ,G,B 的灰度值均相等,即 R=G=B;

3 、图像 x 方向分辨率为 sp[0],y 方向分辨率为 sp[1] ,转换后的阈值化图形存储在 img;

答:

import cv2
img = cv2.imread('2.jpg', 0)  # 以灰度模式读取图像【灰度阈值变换曲线、阈值变换、输入强度、输出强度】
threshold = 120  # 设置阈值
sp = img.shape  # 获取图像的尺寸
# 应用阈值化处理
for i in range(sp[0]):for j in range(sp[1]):if img[i, j] > threshold:img[i, j] = 220else:img[i, j] = 0cv2.imshow('Thresholded Image', img)cv2.waitKey(0)# 显示阈值化后的图像
cv2.destroyAllWindows()

这篇关于【数字图像处理技术与应用】2023-2024上图像处理期中-云南农业大学的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/565056

相关文章

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt