实验名称

数字图像基础

实验时间

2022/3/28

姓名

班级

计非201

学号

成绩

  • 实验目的

1. 掌握图像的采样和量化;

2. 掌握图像基本属性的操作;

3. 能完成图像的基本运算。

二.实验原理

数字图像的本质是一个多维矩阵。数字图像处理的本质是对多维矩阵的操作。按照处理

对象的不同,可将数字图像处理分为黑白图像处理、灰度图像处理、彩色图像处理。按照处

理方法进行划分,可将数字图像处理分为空间域处理与频域处理。按照处理策略不同,数字

图像处理又可分为全局处理与局部处理。

数字图像处理的方便性和灵活性,以及现代计算机的广泛普及,使得数字图像处理技术

成为图像处理技术的主流。数字图像处理的一般步骤为:图像信息的获取、图像信息的存储、

图像信息的处理、图像信息的传输、图像信息的展示等环节。目前常见的数字图像处理方法

包括:图像的数字化、编码、增强、恢复、变换、压缩、存储、传输、分析、识别、分割等。

三.实验内容与关键步骤

1. 实验环境的搭建

2. 安装第三方库skimage

3. 图像采样和量化,修改采样比率ratio 参数的值,体会采样频率对图像空间分辨率的影响。

4. 图像基本属性的操作,可以通过对像素构成矩阵的灰度值进行操作,达到调整图像亮

度的目的。

  1. 图像的简单计算,设对两幅图像f(x.y)和h(x.y)的算术运算或逻辑运

算结果是g(xy),则可直接将g(x,y)覆盖f(x,y)或h (xy),即从原存放输人图像的空间直接得

到输出图像。

四.代码

准备第三方库

安装 numpymklscipymatplotlibscikit-image

下载SKIMAGE的全部测试图片

pip install pooch
python
from skimage.data import download_all
download_all()

1. 采样(修改radio)

from skimage import data
from matplotlib import pyplot as plt
import numpy as np #导入所需类包
image=data.coffee()  #载入测试图像
print(image.shape)  #显示图像原始大小
print(type(image))  #显示图像类型
ratio=20                #设置采样比率(此处修改)
image1=np.zeros((int(image.shape[0]/ratio),int(image.shape[1]/ratio),image.shape[2]),dtype='int32')#设置采样后图像大小for i in range(image1.shape[0]):for j in range(image1.shape[1]):for k in range(image1.shape[2]):#对图像进行遍历delta=image[i*ratio:(i+1)*ratio,j*ratio:(j+1)*ratio,k]#获取需要采样图像块image1[i,j,k]=np.mean(delta)#计算均值,并存入结果图像
plt.imshow(image1)#打印采样后图像图像
plt.show()

2. 量化(修改radio)

from skimage import data
from matplotlib import pyplot as plt
image=data.coffee()  #载入测试图像
ratio=128                #设置量化比率
for i in range(image.shape[0]):for j in range(image.shape[1]):for k in range(image.shape[2]):image[i][j][k]=int(image[i][j][k]/ratio)*ratio#对图像每个像素进行量化
plt.imshow(image)#打印采样后图像图像
plt.show()

3. gamma调整(修改adjust_gamma方法的第二个参数)

from skimage import data,io,exposure
from matplotlib import pyplot as plt
#读入图像
image=data.coffee()
#分别计算gamma=0.2,0.67,25时的图像
image_1=exposure.adjust_gamma(image,0.1)
image_2=exposure.adjust_gamma(image,0.67)
image_3=exposure.adjust_gamma(image,25)
#分别展示原图及结果图像
plt.subplot(2,2,1)
plt.title('gamma=1')
io.imshow(image)
plt.subplot(2,2,2)
plt.title('gamma=0.2')
io.imshow(image_1)
plt.subplot(2,2,3)
plt.title('gamma=0.67')
io.imshow(image_2)
plt.subplot(2,2,4)
plt.title('gamma=25')
io.imshow(image_3)
plt.show()

4. 提取色彩通道

from skimage import data,io
from matplotlib import pyplot as plt
#读入图像
image=data.coffee()
#分别取出红、绿、蓝三个颜色通道
image_r=image[:,:,0]
image_g=image[:,:,1]
image_b=image[:,:,2]
#分别展示三个通道
plt.subplot(2,2,1)
io.imshow(image)
plt.subplot(2,2,2)
io.imshow(image_r)
plt.subplot(2,2,3)
io.imshow(image_g)
plt.subplot(2,2,4)
io.imshow(image_b)
plt.show()

5. 通道互换

from skimage import data,io
from matplotlib import pyplot as plt
#读入图像
image=data.coffee()
#分别取出红、绿、蓝三个颜色通道
image_r=image[:,:,0]
image_g=image[:,:,1]
image_b=image[:,:,2]
#红色和蓝色互换
temp=image_r
image_r=image_b
image_b=temp
#将互换后的通道颜色重新赋值给图像
image[:,:,0]=image_r
image[:,:,2]=image_b
#图像显示
plt.imshow(image)
plt.show()

6. 图像加减

from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
from skimage import data
from matplotlib import pyplot as plt
moon=data.moon()
camera=data.camera()
image_minus=moon-camera
image_plus=moon+camera
plt.set_cmap(cmap='gray')
plt.subplot(2,2,1)
plt.title('月亮图像',fontproperties=font_set)
plt.imshow(moon)
plt.subplot(2,2,2)
plt.title('摄影师图像',fontproperties=font_set)
plt.imshow(camera)
plt.subplot(2,2,3)
plt.title('月亮加摄影师图像',fontproperties=font_set)
plt.imshow(image_plus)
plt.subplot(2,2,4)
plt.title('月亮减摄影师图像',fontproperties=font_set)
plt.imshow(image_minus)
plt.show()

7. 直方图均衡

from skimage import data,exposure
import matplotlib.pyplot as plt
img=data.moon()
plt.figure("hist",figsize=(8,8))
arr=img.flatten()
plt.subplot(221)
plt.imshow(img,plt.cm.gray)  #原始图像
plt.subplot(222)
plt.hist(arr, bins=256, density=1,edgecolor='None',facecolor='red',stacked=True) #原始图像直方图
img1=exposure.equalize_hist(img)
arr1=img1.flatten()
plt.subplot(223)
plt.imshow(img1,plt.cm.gray)  #均衡化图像
plt.subplot(224)
plt.hist(arr1, bins=256, density=1,edgecolor='None',facecolor='red',stacked=True) #均衡化直方图
plt.show()
  • 实验结果与分析

采样比率

10

20

64

结果

量化比率

64

128

200

结果

Gamma

1, 0.1, 0.67, 25

1, 0.4, 0.8, 10

1, 0.9, 1.5, 15

结果

提取色彩通道

R, G, B

G, R, B

B, G, R

结果

通道互换

绿蓝互换

红蓝互换

红绿互换

结果

图像加减

月亮和摄影师

月亮和砖

摄影师和砖

结果

直方图均衡

月亮

摄影师

结果

六.实验心得体会

通过本次试验,我掌握了对图像的采样与量化的操作,对图像属性的熟悉以及能够对图像进行一些基本的计算,Gamma,提取色彩通道,通道互换,图像加减,直方图均衡等操作.

【python】《多媒体技术与应用》实验报告「数字图像基础」相关推荐

  1. 【python】《多媒体技术与应用》实验报告「数字图像压缩」「傅里叶变换」

    <多媒体技术与应用>实验报告 实验名称 实验二 数字图像压缩 实验时间 2022/4/11 姓名 班级 计非201 学号 成绩 实验目的 理解图像压缩的主要原则和目的,理解有损和无损压缩的 ...

  2. python 搜索引擎 词位置加权_「seo基础」关键词推广:如何增加网站内容相关

    如何增加网站内容相关性,很多SEO常常会听到圈内人士大夫强调网站内容相关性.网站垂直等之类的言词,网站内容相关性高低也是决定关键词排名重要的环境因素之一,很多小鸟也问过大宝什么是网站内容相关性,如何提 ...

  3. matlab图像处理基础实验,数字图像处理实验报告 Matlab图像处理基础

    <数字图像处理实验报告 Matlab图像处理基础>由会员分享,可在线阅读,更多相关<数字图像处理实验报告 Matlab图像处理基础(27页珍藏版)>请在人人文库网上搜索. 1. ...

  4. 计算机实训机器人实验原理是什么,实验报告机器人控制技术基础实验报告.doc...

    实验报告机器人控制技术基础实验报告 华北电力大学 实 验 报 告 | | 实验名称: 机器人控制技术基础 课程名称: 机器人控制技术基础 | | 实 验 人: 成 绩: 18.00秒 指导教师: 实验 ...

  5. 计算机硬件技术基础实验教程实验报告,计算机硬件技术基础实验报告.doc

    计算机硬件技术基础实验报告 计算机硬件技术基础实验日志认识集成操作软件DDATA SEGMENT MSRDB "HELLO,WORLD!$" LENEQU $- MSR DDATA ...

  6. 「软件测试基础」理论篇之软件测试概论

    文章目录 1. 软件 1.1 软件发展史 1.2 软件生命周期 1.3 软件缺陷 1.4 三种纠错技术 2. 软件过程 2.1 RUP 2.1.1 RUP各个阶段 2.1.2 RUP核心工作流 2.2 ...

  7. 「上层建筑」与「结构基础」~不被迷惑

    数据结构的存储方式 数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储). 我们分析问题,一定要有递归的思想,自顶向下,从抽象到具体.散列表.栈.队列.堆.树.图等这些都属于「上层建筑」,而 ...

  8. python字符串操作、实验报告册——— 切片

    设计一个程序,输入是一个字符串"重庆工程学院软件与人工智能学院",按要求输出: 1. 输出这个字符串的长度 2. 用切片的方式用一句Python语句输出"重庆工程学院&q ...

  9. python基础实验报告答案_Python基础(上)实验报告

    写在前面:这是Python语言的学习之路,大家可以跟着一起学习,绝对是从零开始. Gvim (图形化界面Vim) Brackets(前端友好编辑器) Gedit(编辑器) 使用环境 python 2. ...

  10. python链表和树实验报告_数据结构树和森林实验报告

    _ 树和森林应用实验 实验报告 实验目的 ( 1) 掌握树和森林的二叉链表表示方法. (2) 掌握树和二叉树的结构及算法之间的对应关系. (3) 掌握树的两种遍历算法及其应用. 实验运行环境 Visu ...

最新文章

  1. MVC开发Markdown编辑器(1)
  2. python excel 自动化-简直出神入化,教你用Python控制Excel实现自动化办公
  3. Spring注解Annotation
  4. VUE2.0开发环境安装
  5. 1.11 抽象(abstract)类
  6. iOS:后台定位并实时向服务器发送位置
  7. Servlet_体系结构
  8. jquerymobile使用技巧
  9. div是html5新元素,HTML5编码新元素的介绍
  10. Linux网络设备驱动程序
  11. eclipse安装程序无法启动
  12. SQL替换字段中一部分字符串
  13. 【Unity3D】简单的鼠标打飞碟(Hit UFO)游戏
  14. 服务器配置ipv6网站,服务器配置ipv6地址
  15. typora 修改块代码 和 代码块的背景色
  16. 黑客语言——Ruby
  17. 钉钉视频下载地瓜网络钉钉视频下载器
  18. linux系统Kile+Okular实现逆向搜索
  19. 26两种主界面的设计
  20. 阿里云服务器ECS与域名的绑定

热门文章

  1. red5流媒体服务器系统,red5流媒体服务器
  2. STM32串口通信 中断配置
  3. wifi抓包/苹果电脑mac book抓wifi sniffer packet
  4. 【渝粤教育】广东开放大学 计量基础知识 形成性考核 (48)
  5. 计算机数据类型误差怎么解决,测绘数据常见误差类型及处理方法
  6. 万字教程:Python Word 文档自动化
  7. 计算机设备如何巡检,计算机机房巡检管理制度
  8. 浅谈MyBatis持久层框架
  9. 知了课堂 python_知了传课 - 主页
  10. 基于SSM框架的毕业设计管理系统的设计与实现(附资源下载)