图像识别技术是人工智能的一个重要领域。它是指对图像进行对象识别,以识别各种不同模式的目标和对像的技术。
业务数据--------->特征数据->学习模型
| 特征工程 ^
| TFIDF、MFCC、SIFT |
+--------------------------+
开源计算机视觉库
图像处理
提取图像特征
针对的图像的机器学习
import numpy as np
import cv2 as cv
original = cv.imread('../data/forest.jpg')
cv.imshow('Original', original)
blue = np.zeros_like(original)
blue[..., 0] = original[..., 0]
cv.imshow('Blue', blue)
green = np.zeros_like(original)
green[..., 1] = original[..., 1]
cv.imshow('Green', green)
red = np.zeros_like(original)
red[..., 2] = original[..., 2]
cv.imshow('Red', red)
h, w = original.shape[:2]
l, t = int(w / 4), int(h / 4)
r, b = int(w * 3 / 4), int(h * 3 / 4)
cropped = original[t:b, l:r]
cv.imshow('Cropped', cropped)
#scaled = cv.resize(original,
# (int(w / 2), int(h / 2)),
# interpolation=cv.INTER_LINEAR)
scaled = cv.resize(original, None,
fx=2, fy=2,
interpolation=cv.INTER_LINEAR)
cv.imshow('Scaled', scaled)
cv.waitKey();
cv.imwrite('./cropped.bmp', cropped)
cv.imwrite('./cropped.png', cropped)
cv.imwrite('./cropped.jpg', cropped)
import cv2 as cv
original = cv.imread('../data/chair.jpg',
cv.IMREAD_GRAYSCALE)
cv.imshow('Original', original)
canny = cv.Canny(original, 50, 240)
cv.imshow('Canny', canny)
cv.waitKey()
直方图均衡化
import cv2 as cv
original = cv.imread('../data/sunrise.jpg')
cv.imshow('Original', original)
gray = cv.cvtColor(original, cv.COLOR_BGR2GRAY)
cv.imshow('Gray', gray)
eq_gray = cv.equalizeHist(gray)
cv.imshow('EQ-Gray', eq_gray)
yuv = cv.cvtColor(original, cv.COLOR_BGR2YUV)
yuv[..., 0] = cv.equalizeHist(yuv[..., 0])
eq_color = cv.cvtColor(yuv, cv.COLOR_YUV2BGR)
cv.imshow('EQ-Color', eq_color)
cv.waitKey()
import cv2 as cv
original = cv.imread('../data/box.png',
cv.IMREAD_GRAYSCALE)
cv.imshow('Original', original)
corners = cv.cornerHarris(original, 7, 5, 0.04)
corners = cv.dilate(corners, None)
mixture = original.copy()
mixture[corners > corners.max() * 0.01] = 255
cv.imshow('Mixture', mixture)
cv.waitKey()
几何结构
import cv2 as cv
original = cv.imread('../data/table.jpg')
cv.imshow('Original', original)
gray = cv.cvtColor(original, cv.COLOR_BGR2GRAY)
cv.imshow('Gray', gray)
star = cv.xfeatures2d.StarDetector_create()
keypoints = star.detect(gray)
mixture = original.copy()
cv.drawKeypoints(original, keypoints, mixture,
flags=cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv.imshow('Mixture', mixture)
cv.waitKey()