相关资料

广州大学计算机视觉实验一:图像处理入门
广州大学计算机视觉实验二:摄像机几何
广州大学计算机视觉实验三:图像滤波
广州大学计算机视觉实验四:图像分割
广州大学计算机视觉实验五:简易数字识别
广州大学计算机视觉实验六:车牌识别
六份实验报告下载链接Click me🔗

一、实验目的

本实验课程是计算机、智能、物联网等专业学生的一门专业课程,通过实验,帮助学生更好地掌握计算机视觉相关概念、技术、原理、应用等;通过实验提高学生编写实验报告、总结实验结果的能力;使学生对计算机视觉、模式识别实现等有比较深入的认识。
1.掌握模式识别中涉及的相关概念、算法。
2.熟悉计算机视觉中的具体编程方法;
3.掌握问题表示、求解及编程实现。

二、基本要求

1.实验前,复习《计算机视觉与模式识别》课程中的有关内容。
2.准备好实验数据。
3.编程要独立完成,程序应加适当的注释。
4.完成实验报告。

三、实验软件

使用Python实现。

四、实验内容

  1. 搭建环境
    本地:推荐PyCharm+Anaconda+Scikit-Image
    在线:推荐阿里云天池实验室 https://tianchi.aliyun.com/notebook-ai/
  2. 尝试简单图像处理
    加载图片 -> 图像处理(调整色彩亮度、去噪模糊) -> 保存图片

五、实验过程

1. 搭建环境

本地:PyCharm

在这里插入图片描述

在线:Google Colab

Google提供的免费GPU资源,线上连接Colab使用,显卡为teslaT4。
在这里插入图片描述

2. 尝试简单图像处理

加载图片 -> 图像处理(调整色彩亮度、去噪模糊) -> 保存图片

1、导入推荐库

from skimage import data, img_as_float
from skimage.restoration import denoise_tv_chambolle,denoise_bilateral,denoise_tv_bregman
from skimage import io, color
import matplotlib.pyplot as plt

2、加载图片

#读取一张imagenet图片
img = io.imread("./771.jpg")
img = img/255  #归一化
plt.imshow(img)

在这里插入图片描述

3、图像处理

添加噪声、去除噪声
#对图片添加随机噪声
noisy = img +  0.8*(np.random.random(img.shape) - 0.5)
noisy = np.clip(noisy, 0, 1)
plt.imshow(noisy)

在这里插入图片描述

#双边滤波

denoised = denoise_bilateral(noisy, sigma_color=0.05, sigma_spatial=5,multichannel=True)
plt.imshow(denoised)

在这里插入图片描述

#使用分裂Bregman优化执行总变差去噪。

denoised = denoise_tv_bregman(noisy, weight=1.0, max_iter=50, eps=0.001, isotropic=True)
plt.imshow(denoised)

在这里插入图片描述

#小波去噪

denoised_img = denoise_wavelet(noisy, sigma=0.1)
plt.imshow(denoised)

在这里插入图片描述

调整对比度,调整亮度

线性拉伸
# 乘上一个常数(对应对比度的调节)以及加上一个常数(对应亮度值的调节)


from skimage import data, exposure, img_as_float
import matplotlib.pyplot as plt

image = img
img1 = 0.5 * image + 0.3  # 调亮
img2 = 1.5 * image - 0.5  # 调暗
plt.figure('adjust_gamma', figsize=(8, 8))

plt.subplot(131)
plt.title('origin image')
plt.imshow(image, plt.cm.gray)
plt.axis('off')

plt.subplot(132)
plt.title('0.5,0.3')
plt.imshow(img1, plt.cm.gray)
plt.axis('off')

plt.subplot(133)
plt.title('1.5,-0.5')
plt.imshow(img2, plt.cm.gray)
plt.axis('off')

plt.show()

在这里插入图片描述

非线性拉伸,gamma变换
from skimage import data, exposure, img_as_float
import matplotlib.pyplot as plt

image = img
gam1 = exposure.adjust_gamma(image, 2)  # 调暗
gam2 = exposure.adjust_gamma(image, 0.5)  # 调亮
plt.figure('adjust_gamma', figsize=(8, 8))

plt.subplot(131)
plt.title('origin image')
plt.imshow(image, plt.cm.gray)
plt.axis('off')

plt.subplot(132)
plt.title('gamma=2')
plt.imshow(gam1, plt.cm.gray)
plt.axis('off')

plt.subplot(133)
plt.title('gamma=0.5')
plt.imshow(gam2, plt.cm.gray)
plt.axis('off')

plt.show()

在这里插入图片描述

非线性拉伸,对数调整
from skimage import data, exposure, img_as_float
import matplotlib.pyplot as plt

image = img
gam1 = exposure.adjust_log(image)
plt.figure('adjust_gamma', figsize=(8, 8))

plt.subplot(121)
plt.title('origin image')
plt.imshow(image, plt.cm.gray)
plt.axis('off')

plt.subplot(122)
plt.title('log')
plt.imshow(gam1, plt.cm.gray)
plt.axis('off')

plt.show()

在这里插入图片描述

4、保存图片

#保存图片
io.imsave('./img.jpg', denoised_img)

在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐