数字图像处理 - 实验作业一 - Python
文章目录
- 第二章 数字图像基础
- 1、用程序实现同时对比度实验
- 2、用程序实验空间分辨率变化效果
- 3、用程序实验幅度分辨率变化效果
第二章 数字图像基础
这几个题目网上有很多
MATLAB
版的解答,这里自己写了一个python
的版本,实现的思路是基本一致的
依赖库
import matplotlib.pyplot as plt
import matplotlib.image as img
import numpy as np
import math
%matplotlib inline
1、用程序实现同时对比度实验
程序代码:
# set image size
height = 256
weight = 256
channel = 3img_size = (height, weight, channel)
img_list = []# R=G=B gray
light_gray = 200
deep_gray = 100
center_gray = 150img_1 = np.ones(img_size, dtype = int) * deep_gray
img_2 = np.ones(img_size, dtype = int) * light_gray
img_1[50:200, 50:200,:] = center_gray
img_2[50:200, 50:200,:] = center_grayimg_list = [img_1, img_2]_, axs = plt.subplots(1, 2, figsize=(8,8))for i in range(len(axs)):axs[i].set_title("image"+str(i+1))axs[i].imshow(img_list[i])axs[i].axes.get_xaxis().set_visible(False)axs[i].axes.get_yaxis().set_visible(False)plt.show()
输出结果:
2、用程序实验空间分辨率变化效果
本题和下一题使用的原图
- 大小为1024*1024
程序代码:
timg_1024 = img.imread("timg.jpg")
m, n ,c = timg_1024.shape img_list = []
img_list_name = []
index = [int(math.pow(2,i)) for i in range(8)] for i in index:img_list.append(timg_1024[1:m:i, 1:n:i, :]) img_size = [int(1024/i),int(1024/i)] img_list_name.append(img_size) row = 2
col = 4 _, axs = plt.subplots(row, col, figsize=(15,15))
plt.subplots_adjust(top=0.4,bottom=0) # 两行输出的行间距for i in range(row):for j in range(col):axs[i][j].set_title(str(img_list_name[i*4+j][0])+"*"+str(img_list_name[i*4+j][1]))axs[i][j].imshow(img_list[i*4+j])axs[i][j].axes.get_xaxis().set_visible(False)axs[i][j].axes.get_yaxis().set_visible(False)plt.show()
输出结果:
3、用程序实验幅度分辨率变化效果
程序代码:
timg_1024 = img.imread("timg.jpg")
m, n ,c = timg_1024.shapeimg_list = []
img_new = np.ndarray((1024,1024,3),dtype=int)
img_list_name = []
index = [int(math.pow(2,i)) for i in range(8)] for i in index:img_new = np.int64(i * np.round(timg_1024/i))img_new[img_new > 255] = 255 # 出界限制img_list.append(img_new) img_list_name.append("Amplitude"+str(i))row = 2
col = 4_, axs = plt.subplots(row, col, figsize=(15,15))
plt.subplots_adjust(top=0.4,bottom=0)for i in range(row):for j in range(col):axs[i][j].set_title(img_list_name[i*4+j])axs[i][j].imshow(img_list[i*4+j])axs[i][j].axes.get_xaxis().set_visible(False)axs[i][j].axes.get_yaxis().set_visible(False)plt.show()
输出图像:
遇到的一点意外:
本来在实验3中用的幅度变化的方式是
for i in index:for j in range(m):for k in range(n):img_new[j,k] = i * np.round(timg_1024[j,k]/i)for l in img_new[j,k]:if l > 255:print("error")img_list.append(img_new)img_list_name.append("Amplitude"+str(i))
但是由于循环太多,运行速度太慢了,改成了
for i in index:img_new = np.int64(i * np.round(timg_1024/i))img_new[img_new > 255] = 255 # 出界限制img_list.append(img_new) img_list_name.append("Amplitude"+str(i))
总结:完成了三个小实验,但由于刚接触python不久,很多地方还不是很完善,以后会慢慢熟练的,欢迎批评与指正
数字图像处理 - 实验作业一 - Python相关推荐
- 数字图像处理实验——Python语言实现
数字图像处理实验--Python语言实现 实验一:数字图像处理入门 实验二:直方图均衡 实验三:线性平滑和锐化--掩模法 实验四:非线性平滑--中值滤波 实验五:非线性锐化--梯度法 GitHub地址 ...
- 数字图像处理——实验一 Python中数字图像处理的基本操作
数字图像处理--实验一 Python中数字图像处理的基本操作 一.实验目的 二.实验主要仪器设备 三.实验原理 3.1 数字图像的表示和类别 3.2 opencv-python图像文件格式 四.实验内 ...
- 数字图像处理——大作业 基于车道信息的违法车辆车牌识别
数字图像处理--大作业 基于车道信息的违法车辆车牌识别 一.车牌识别研究现状与分析 二.车牌识别算法原理 2.1 车牌定位 2.1.1 基于RGB阈值的车牌区域初定位 2.1.2 基于数学形态学的车牌 ...
- matlab d=sqrt((i-m)^2+(j-n)^2);,硕士研究生《数字图像处理》作业
硕士研究生<数字图像处理>作业 研究生<数字图像处理>考试 1. 编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论. 图像频域降噪的实验原理与算法分析: ...
- 数字图像处理实验(总计23个)汇总
以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...
- 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理
数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...
- 数字图像处理实验三图像增强
一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法. (2)熟练掌握直方图均衡化和直方图规定化的计算过 程. (3)熟练掌握空域滤波中常 ...
- 数字图像处理实验四图像频域增强
一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...
- 数字图像处理实验5图像复原
一.实验目的 (1)了解图像复原的目的及意义,加深对图像复原理论的认识. (2)掌握维纳滤波复原基本原理. (3)掌握约束最小二乘方复原方法. (4)掌握盲解卷积复原方法 二.实验内容 (1)维纳滤 ...
- 搭建数字图像处理开发环境(Python+pycharm+opencv)
搭建数字图像处理开发环境(Python+pycharm+opencv) 安装python 安装pycharm 安装包 pycharm安装过程 安装opencv 注: 后续 安装python 可以在这里 ...
最新文章
- 数据库诞生40年,阿里云AWS用技术推动第三次变革
- [一文一命令]less命令详解
- 计算机组成原理A原是什么,计算机组成原理A
- 单核工作法15:循序渐进
- Python 一路走来 Django
- 获取JavaScript变量的类型
- java sql server 存储过程_修改SQL SERVER内置存储过程
- spring cloud gateway的stripPrefix配置
- leetcode475. 供暖器(二分查找)
- 游戏服务器为空请检查列表文件,游戏服务器为空请检查列表文件
- JAVA如何分段_OpenCV Java文本分段
- 转:让程序只运行一个实例的四种方法
- synopsys软件介绍
- vmware 常用知识
- 空间相册怎么移到计算机里,qq空间上传照片_怎样把电脑里存的照片传到qq空间??...
- 主机如何做好防勒索病毒措施
- Service层在分层中的作用
- 关于文件读写缓存的问题(flush的使用场景)
- 充电:28G各类资料送给您!PPT模板、商业计划书等
- STM32cubeMX将STM32F767+LAN8720+LwIP+FreeRTOS的以太网实现