首页 飞桨领航团 帖子详情
【AI达人养成营】图像处理笔记
收藏
快速回复
飞桨领航团 文章AI达人创造营 364 0
【AI达人养成营】图像处理笔记
收藏
快速回复
飞桨领航团 文章AI达人创造营 364 0

图像处理:
1.灰度值:0为黑色,数值越大,亮度越大。
2.光学三原色(RGB):红绿蓝,光学三原色混合后,组成像素点的显示颜色。三种原色同时相加为白色。白色属于无色系(黑白灰)的一中。相互搭配可显示所有的可见色。
3.分辨率=画面水平方向的像素值*画面垂直方向的像素值
4.屏幕分辨率:例如,屏幕分辨率是1024×768,也就是说设备屏幕的水平方向上有1024个像素点,垂直方向上有768个像素点。
5.图像分辨率:例如,一张图片分辨率是500x200,也就是说这张图片在屏幕上按1:1放大时,水平方向有500个像素点(色块),垂直方向有200个像素点(色块)。
6.常见图片格式:jpg、png、gif、psd、tiff、bmp等
7.使用OpenCV加载并保存图片
(1)说明:OpenCV默认使用BGR格式,而RGB和BGR的颜色转换不同,即使转换为灰度也是如此。一些开发人员认为R+G+B/3对于灰度是正确的,但最佳灰度值称为亮度(luminosity),并且具有公式:0.21R+0.72G+0.07*B。(图像坐标的起始点是在左上角,所以行对应的是y,列对应的是x。)
(2)加载图片:使用cv2.imread()来读入一张图片
参数1:图片的文件名

如果图片放在当前文件夹下,直接写文件名就行了,如'lena.jpg'
否则需要给出绝对路径,如'D:\OpenCVSamples\lena.jpg'
参数2:读入方式,省略即采用默认值

cv2.IMREAD_COLOR:彩色图,默认值(1)
cv2.IMREAD_GRAYSCALE:灰度图(0)
cv2.IMREAD_UNCHANGED:包含透明通道的彩色图(-1)
经验之谈:路径中不能有中文噢,并且没有加载成功的话是不会报错的,print(img)的结果为None,后面处理才会报错,算是个小坑。
(3)图片属性
# 打印图片的形状
print(img.shape)
# 形状中包括行数、列数和通道数
height, width, channels = img.shape
# img是灰度图的话:height, width = img.shape
img.shape

# 加载灰度图
img = cv2.imread('lena.jpg', 0)
# 将彩色图的BGR通道顺序转成RGB
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
img.shape

# 加载彩色图
img = cv2.imread('lena.jpg', 1)
# 将彩色图的BGR通道直接转为灰度图
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(img,'gray')
img.shape

# 加载灰度图
img = cv2.imread('lena.jpg', 0)
# 显示这张灰度图
plt.imshow(img,'gray')
img.shape


# 加载四通道图片
img = cv2.imread('cat.png',-1)
# 将彩色图的BGR通道顺序转成RGB,注意,在这一步直接丢掉了alpha通道
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
img.shape

img = cv2.imread('cat.png',-1)
# 和上图对比一下
plt.imshow(img)
img.shape

# 加载彩色图
img = cv2.imread('cat.png',1)
# 不转颜色通道
plt.imshow(img)
img.shape

img = cv2.imread('cat.png', 1)
# 转颜色通道为RGB
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
img.shape

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户