首先导入库
import cv2
from matplotlib import pyplot as plt
import numpy as np
原图像

读取图像并处理
img_path = " "
img = cv2.imread(img_path)
print(img.shape)
>>>(960, 1280, 3)
图像的尺寸为960 x 1280像素。当我们要在读取过程后打印尺寸时,我们看到960x1280x3的结果。因此,根据图像的尺寸创建了一个矩阵,并为该矩阵分配了图像每个像素的值。RGB有3个维度,因为图像是彩色的。
如果我们想将图像转换为黑白图像,则使用cvtColor函数。
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
如果要查看由于该函数而发生的更改,可以使用matplotlib中的imshow函数。
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray_image)
plt.show()
print(gray_image.shape)
>>>(960, 1280)

我们已将图像转换为黑白图像。当我们检查其尺寸时,不再有3个尺寸。
当查看图像的矩阵值时,我们看到它由0到255之间的值组成。在某些情况下,我们可能希望此矩阵仅由0到255的值组成[3]。在这种情况下使用阈值功能。
(thresh, blackAndWhiteImage) = cv2.threshold(gray_image, 20, 255, cv2.THRESH_BINARY)
(thresh, blackAndWhiteImage) = cv2.threshold(gray_image, 80, 255, cv2.THRESH_BINARY)
(thresh, blackAndWhiteImage) = cv2.threshold(gray_image, 160, 255, cv2.THRESH_BINARY)
(thresh, blackAndWhiteImage) = cv2.threshold(gray_image, 200, 255, cv2.THRESH_BINARY)
plt.imshow(blackAndWhiteImage)
plt.show()

OpenCV中阈值功能所需的第一个参数是要处理的图像。以下参数是阈值。第三个参数是我们要分配超出阈值的矩阵元素的值。可以在图3中看到四个不同阈值的影响。在第一张图像(图像1)中,该阈值确定为20.将20之上的所有值分配给255.其余值为设置为0。这仅允许黑色或非常深的颜色为黑色,而所有其他阴影直接为白色。图像2和图像3的阈值分别为80和160.最后,在图像4中将阈值确定为200.与图像1不同,白色和非常浅的颜色被指定为255,而所有在图4中将剩余值设置为0。
图像处理中使用的另一种方法是模糊。这可以通过多个功能来实现。
output2 = cv2.blur(gray_image, (10, 10))
plt.imshow(output2)
plt.show()

这篇博客介绍了如何使用OpenCV库进行图像处理。首先,通过`cv2.imread()`读取图像,并打印其尺寸。接着,利用`cv2.cvtColor()`将彩色图像转换为灰度图像。然后,通过`cv2.threshold()`函数应用不同的阈值,将灰度图像二值化,展示不同阈值对图像效果的影响。最后,使用`cv2.blur()`对图像进行模糊处理,观察图像的变化。
1893

被折叠的 条评论
为什么被折叠?



