📅  最后修改于: 2023-12-03 14:49:45.822000             🧑  作者: Mango
OpenCV 是一个流行的计算机视觉库,可以应用于图像处理、机器视觉、计算机视觉等各种领域。本文将介绍如何使用 Python-OpenCV 进行图像处理中的点处理操作,包括调整像素值、二值化、灰度化、反色效果等。
pip install opencv-python
在 OpenCV 中,读取图像需要使用 cv2.imread()
方法。该方法的第一个参数为要读取的图像文件路径,第二个参数为读取图像的方式。常用的方式为:
cv2.IMREAD_COLOR
:默认方式,读取彩色图像。cv2.IMREAD_GRAYSCALE
:读取灰度图像。cv2.IMREAD_UNCHANGED
:读取原始图像,包括 alpha 通道。import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像中的每个像素都有一个数值,表示该像素在图像中的颜色和亮度。通过修改像素的数值,即可改变图像的颜色和亮度。以下代码演示了如何将图像每个像素的红色通道数值加上 100:
import cv2
import numpy as np
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
# 将红色通道数值加上 100
img[:, :, 2] = np.clip(img[:, :, 2] + 100, 0, 255)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
二值化是将图像转换为只包含黑色和白色两种颜色的图像。可以通过设定阈值来实现。以下代码演示了如何将图像二值化:
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 设定阈值为 128,只有大于阈值的像素点会变为白色,其余为黑色
ret, threshold = cv2.threshold(img, 128, 255, cv2.THRESH_BINARY)
# 显示图像
cv2.imshow('image', threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()
在很多情况下,只需要使用图像中的亮度信息,而不需要颜色信息。可以将图像进行灰度化处理,即将 RGB 三个通道的数值取平均值。以下代码演示了如何将图像灰度化:
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 显示图像
cv2.imshow('image', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
将图像进行反色处理,即将每个像素的数值与 255 做差。以下代码演示了如何将图像进行反色处理:
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
# 反色处理
img = 255 - img
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上就是使用 Python-OpenCV 进行图像处理中的点处理操作的实现方法。可以根据实际需求进行修改和扩展。