OpenCV(开源计算机视觉库)是一个用于实时计算机视觉的开源库。它包含了许多用于图像和视频处理的优化算法。在Ubuntu系统下,你可以使用OpenCV 2来执行各种图像处理任务。
以下是一些常见的OpenCV 2图像处理功能:
import cv2
# 读取图像
image = cv2.imread('input.jpg')
# 显示图像
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 保存图像
cv2.imwrite('output.jpg', image)
# 缩放图像
resized_image = cv2.resize(image, (width, height))
# 旋转图像
(height, width) = image.shape[:2]
center = (width // 2, height // 2)
angle = 45 # 旋转角度
rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))
# 翻转图像
flipped_image = cv2.flip(image, 1) # 1表示水平翻转,0表示垂直翻转,-1表示水平垂直翻转
# 转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 转换为HSV图像
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 高斯模糊
blurred_image = cv2.GaussianBlur(image, (kernel_size, kernel_size), sigmaX)
# 中值滤波
median_image = cv2.medianBlur(image, kernel_size)
# Canny边缘检测
edges = cv2.Canny(image, threshold1, threshold2)
# Sobel算子
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=kernel_size)
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=kernel_size)
# SIFT特征提取
sift = cv2.SIFT()
keypoints, descriptors = sift.detectAndCompute(image, None)
# SURF特征提取
surf = cv2.SURF()
keypoints, descriptors = surf.detectAndCompute(image, None)
# ORB特征提取
orb = cv2.ORB()
keypoints, descriptors = orb.detectAndCompute(image, None)
这只是OpenCV 2图像处理功能的一部分。要了解更多关于OpenCV 2的信息,请参阅官方文档:https://docs.opencv.org/2.4/index.html