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

news2024/11/19 12:38:49

一、填空题(每空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 cv2

img = cv2.imread('2.jpg', 1)

i=j=0

sp=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; // 灰度大于阈值时,灰度取220
        else
            B[i][j] = 0;   // 灰度小于等于阈值时,灰度取0
    }
}

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

答:

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

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

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

import cv2

img = cv2.imread('2.jpg', 1)

i=j=0

sp=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] = 220
            else:
            img[i, j] = 0
            cv2.imshow('Thresholded Image', img)
            cv2.waitKey(0)# 显示阈值化后的图像
cv2.destroyAllWindows()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1351712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C#]yolov8-onnx在winform部署手势识别模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新…

promise.prototype.finally重写和兼容火狐低版本浏览器

一、finally()方法用于指定不管 Promise 对象最后状态如何&#xff0c;都会执行的操作。该方法是 ES2018 引入标准的 let promise new Promise() promise .then(result > {}) .catch(error > {}) .finally(() > {})finally方法的回调函数不接受任何参数;finally方法…

指令、电流、上下斜坡、颤振频率可调型比例放大器

控制不带电反馈的单或双比例电磁铁的比例阀&#xff0c;如比例泵阀、比例插装阀、比例方向阀、比例压力阀、比例流量阀、比例叠加阀等&#xff1b; 常规比例阀控制电流如650mA、700mA、760mA、830mA、950mA、1.6A、2.5A、3A等; 带数显区显示及当前参数现场可调&#xff0c;如…

php合并数组的几种方式 并简述其特点

目前工作中接触到的PHP数组合并方式主要有三种&#xff1a; 1、操作符 2、array_merge() 3、array_merge_recursive() 它们的区别主要体现在对于相同键名&#xff08;数字键名、字符串键名&#xff09;的处理方式&#xff0c; 一 相同字符串键 <?php$arrFirst [&quo…

键盘数字键打不出来怎么解锁?收藏好这4个简单方法!

“我在使用电脑进行办公时&#xff0c;突然发现我电脑键盘的数字键无法输入&#xff0c;这该怎么办呢&#xff1f;我应该如何解锁呢&#xff1f;请给我出出主意吧&#xff01;” 在日常使用电脑时&#xff0c;很多用户都需要使用键盘输入文字。但有时候部分用户也会遇到键盘数字…

SpringBoot: 通过MyBatis访问ClickHouse

一、ClickHouse中建表&#xff0c;添加数据 二、SpringBoot项目添加mybatis、clickhouse、druid相关依赖 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version></dependency>…

【Proteus仿真】【Arduino单片机】汽车尾气检测报警系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用按键、LCD1602液晶、蜂鸣器模块、CO、NOx、HC和PM2.5气体传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示CO、NOx、HC和…

【算法】和为K的连续子数组

牛客链接&#xff1a;https://www.nowcoder.com/practice/704c8388a82e42e58b7f5751ec943a11?tpId196&&tqId37127&rp1&ru/ta/job-code-total&qru/ta/job-code-total/question-ranking 使用【前缀法】&#xff0c;把所有连续和合索引存进哈希表&#xff0c…

55寸oled透明显示屏售价,受哪些因素影响

55寸OLED透明显示屏的售价受到多个因素的影响&#xff0c;包括以下几个方面&#xff1a; 尺寸和分辨率&#xff1a;OLED透明显示屏的尺寸和分辨率是决定价格的重要因素。较大的尺寸和较高的分辨率会增加制造成本和售价。 技术水平和制造工艺&#xff1a;OLED透明显示屏的技术水…

超高速同步PCI数据采集卡PCI8552A

◆ 输入量程&#xff1a;1000mV ◆ 转换精度&#xff1a;12 位(Bit) ◆ 采样频率(Frequency)&#xff1a;最高 150MHz ◆ 物理通道数&#xff1a;2 通道同步 ◆ 模拟量输入方式&#xff1a;单端模拟输入 ◆ 数据读取方式&#xff1a;DMA方式 ◆ 存储器深度&#xf…

Git - 强制替换覆盖 master 分支解决方案

问题描述 在版本迭代中&#xff0c;通常会保持一个主分支 master&#xff0c;及多个 dev 分支&#xff0c;但是因为 dev 分支的开发周期过长&#xff0c;迭代太多而没有及时维护 master &#xff0c;导致后来发版上线的大部分代码都在 dev 分支上&#xff0c;如果将代码在 mas…

Redis(中)

1、redis的持久化 "Redis 如何将数据写入磁盘"&#xff0c;首先要明白的时候&#xff0c;我们使用的redis的数据保存在内存上的&#xff0c;也就是说&#xff0c;只要我们的电脑关机或者重启服务器&#xff0c;那么在内存中的数据就会消失&#xff0c;所以要想持久化…

【GitHub】ssh: connect to host github.com port 22: Connection refused

本地使用git上传GitHub仓库时发现的一个报错&#xff0c;以为是本机连不上github了&#xff0c;ping过后发现能够正常访问&#xff0c;于是上网找到了一个很完美的解决方案 原因&#xff1a;22端口被占用或被防火墙屏蔽 解决方法&#xff1a;切换GitHub的443端口 1.首先找到…

Rancher 单节点 docker 部署备份与恢复

Rancher 单节点 docker 部署备份与恢复 1. 备份集群 获取 rancher server 容器名&#xff0c;本例为 angry_aryabhata docker ps | grep rancher/rancher6a27b8634c80 rancher/rancher:v2.5.14 xxx angry_aryabhata停止容器 docker stop angry_aryabhata创建备…

【5G PHY】5G 物理层加速卡介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

大模型时代下AIGC新浪潮

大模型时代下AIGC新浪潮 文章目录 大模型时代下AIGC新浪潮1. **相关概念**2. **迎接大模型时代**3. **ChatGPT引爆AIGC产业**4. **从产业链宏观看AIGC**1. **上游&#xff1a;基础层**2. **中游&#xff1a;技术层/模型层**1. **模型层介绍**2. **预训练大模型分类与介绍** 3. …

【Unity嵌入Android原生工程】

Unity嵌入Android原生工程 本章学习,Unity模块嵌入Android## 标题Unity导出Android工程创建Android Studio工程Unity嵌入到Andorid StudioAndroid原生代码跳转到Unity场景工作需要嵌入原生工程,并实现热更,记录一下 工具,Unity2023.3.14,Android Studio 2022.3.1 patch3 Un…

【公有云】通过AWS Endpoints从内网访问S3

AWS S3作为非结构化数据的存储&#xff0c;经常会有内网中的app调用的需求。S3默认是走公网访问的&#xff0c;如果内网app通过公网地址访问S3并获取数据会消耗公网带宽费用。如下图所示&#xff1a; AWS 提供了一种叫做endpoints的资源&#xff0c;这种资源可以后挂S3服务&a…

缓存数据一致性策略如何分类?

一、概述 数据库与缓存数据一致性问题&#xff0c;一直以来都是大家比较关注的问题。针对一致性的解决方案也是非常多&#xff0c;以下主要针对方案的梳理与分类&#xff1a; 数据库数据与缓存数据一致性的方案&#xff0c;可以从不同的角度来分类&#xff0c;比如&#xff1…

算法——队列+宽搜(BFS)

队列这种数据结构大都服务于一个算法——宽搜&#xff08;BFS&#xff09;。宽搜还可以运用到二叉树、图、迷宫最短路径问题、拓扑排序等等 N叉数的层序遍历 N叉树的层序遍历 题目解析 给定一个 N 叉树&#xff0c;返回其节点值的_层序遍历_。&#xff08;即从左到右&#…