0
点赞
收藏
分享

微信扫一扫

第一周学习图像处理的总结

春意暖洋洋 2022-02-27 阅读 101

文章目录


前言

本文介绍关于数字图像处理的一些基本内容和一些代码演示


一、什么是数字图像?

数字图像,又称数码图像数位图像,是二维图像用有限数字数值像素的表示。由数组或矩阵表示,其光照位置和强度都是离散的。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。

1.数字图像的表示

一副图像可以表示为一个范围有限二维空间内幅值有限的函数,其数学表达式为:

 I=f(x,y)

xstratxxend   且   ystartyyend   且    IminIImax

图像在x和y坐标以及在幅度变化上是连续的。要将这样的一幅图像转换成数字形式,要求对坐标和幅度进行数字化。将坐标值数字化称为取样,将幅值数字化称为量化。因此,当x、y分量及幅值f都是有限且离散的量时,我们称图像为数字图像

 

 M,N必须为正数,L为灰度级,灰度的取值范围为[0,L-1]。灰度级的取值范围一般称为图像的动态范围。

一般,M、N和L取值为2的整数次幂

L=2k,称为k位图像

图像的数据类型

 

二、关于图像处理的库和采样实验。

1.现在常用到的两个库

1. scikit Image

scikit-image是一个开源的Python包,可以使用 numpy 数组。它实现了用于研究、教育和工业应用的算法和实用程序。它是一个相当简单和直接的库,即使对于Python生态系统的新手也是如此。这些代码是由活跃的志愿者社区编写的,具有高质量和同行评审的特性。

2. Numpy

Numpy是Python编程中的核心库之一,提供对数组的支持。图像本质上是一个包含数据点像素的标准Numpy数组。因此,通过使用基本的NumPy操作,如切片、屏蔽和花式索引,我们可以修改图像的像素值。可以使用skimage加载图像,并使用matplotlib显示图像。

2.采样实验

第一个是输出指定行列范围的图像

import skimage;

import cv2;


from skimage import data
from matplotlib import pyplot as plt
image = data.coffee()
image1 = image[20:200,30:200,:]
plt.imshow(image1)
plt.show()

第二个是使用均值方法进行图像模拟采样

import skimage

import cv2

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()

shape[]里面的参数
img.shape[0]:图像的垂直尺寸(高度)
img.shape[1]:图像的水平尺寸(宽度)
img.shape[2]:图像的通道数(灰度值)

在矩阵中,[0]就表示行数,[1]则表示列数

ratio为采样比率,这个值越高,采样间隔越大,所得图像像素越少,空间分辨率越低,图像质量越差,但数据量小

在运行以上代码时需要安装相应的库

总结

学习数字图像处理第一周的记录

举报

相关推荐

第一周学习情况总结

第一周学习

寒假第一周总结

Java学习第一周总结笔记

第一周

Java学习(第一周)

Python 的学习--第一周

Vue第一周复习总结

ACM第一周总结(STL)

0 条评论