广州大学计算机视觉实验一:图像处理入门
实验一图像处理入门目录实验一图像处理入门一、实验目的二、基本要求三、实验软件四、实验内容五、实验过程1. 搭建环境2. 尝试简单图像处理添加噪声、去除噪声线性拉伸非线性拉伸,gamma变换非线性拉伸,对数调整一、实验目的本实验课程是计算机、智能、物联网等专业学生的一门专业课程,通过实验,帮助学生更好地掌握计算机视觉相关概念、技术、原理、应用等;通过实验提高学生编写实验报告、总结实验结果的能力;使学
相关资料
广州大学计算机视觉实验一:图像处理入门
广州大学计算机视觉实验二:摄像机几何
广州大学计算机视觉实验三:图像滤波
广州大学计算机视觉实验四:图像分割
广州大学计算机视觉实验五:简易数字识别
广州大学计算机视觉实验六:车牌识别
六份实验报告下载链接Click me🔗
实验一 图像处理入门
一、实验目的
本实验课程是计算机、智能、物联网等专业学生的一门专业课程,通过实验,帮助学生更好地掌握计算机视觉相关概念、技术、原理、应用等;通过实验提高学生编写实验报告、总结实验结果的能力;使学生对计算机视觉、模式识别实现等有比较深入的认识。
1.掌握模式识别中涉及的相关概念、算法。
2.熟悉计算机视觉中的具体编程方法;
3.掌握问题表示、求解及编程实现。
二、基本要求
1.实验前,复习《计算机视觉与模式识别》课程中的有关内容。
2.准备好实验数据。
3.编程要独立完成,程序应加适当的注释。
4.完成实验报告。
三、实验软件
使用Python实现。
四、实验内容
- 搭建环境
本地:推荐PyCharm+Anaconda+Scikit-Image
在线:推荐阿里云天池实验室 https://tianchi.aliyun.com/notebook-ai/ - 尝试简单图像处理
加载图片 -> 图像处理(调整色彩亮度、去噪模糊) -> 保存图片
五、实验过程
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)
更多推荐
所有评论(0)