OpenCV入门基础知识
1.图片读取
import cv2
print(cv2.getVersionString())
image = cv2.imread("opencv_logo.jpg")
print(image.shape)
cv2.imshow("image", image)
cv2.waitKey()
2.RGB彩色通道
R:Red
G:Green
B:Blue
存储一张彩色图片等同于存储三张灰度图。
灰度范围是0——255
三颜色通道
OpenCV对颜色的储存顺序是BGR,与常见的RGB顺序刚好相反。
import cv2
image = cv2.imread("opencv_logo.jpg")
cv2.imshow("blue", image[:, :, 0])
cv2.imshow("green", image[:, :, 1])
cv2.imshow("red", image[:, :, 2])
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("gray", gray)
cv2.waitKey()
一张彩图,被分成三张灰度图,与上面的一致。
下方是该图像转化的灰度图
3.区域裁剪
对图像的部分区域进行裁剪
import cv2
image = cv2.imread("opencv_logo.jpg")
crop = image[10:170, 40:200]
cv2.imshow("crop", crop)
cv2.waitKey()
这里的10:100是横行,指的是从第10行到第100行
同理40:200是纵列,从40列到200列。
4. 绘制图片和文字
import cv2
import numpy as np
image = np.zeros([300, 300, 3], dtype=np.uint8)
cv2.line(image, (100, 200), (250, 250), (255, 0, 0), 2)
cv2.rectangle(image, (30, 100), (60, 150), (0, 255, 0), 2)
cv2.circle(image, (150, 100), 20, (0, 0, 255), 3)
cv2.putText(image, "hello", (100, 50), 0, 1, (255, 255, 255), 2, 1)
cv2.imshow("image", image),0为字体序号,第一个1是缩放系数,2为粗细2个像素,第二个1是线条类型
cv2.waitKey()
OpenCV绘制的转角细节不够清楚。
5.均值滤波
均值滤波器用于处理图像的噪点。
import cv2
image = cv2.imread("plane.jpg")
gauss = cv2.GaussianBlur(image, (5, 5), 0)
median = cv2.medianBlur(image, 5)
cv2.imshow("image", image)
cv2.imshow("gauss", gauss)
cv2.imshow("median", median)
cv2.waitKey()
使用均值滤波把噪点消除,方便后面的图像处理操作。
6.特征提取
import cv2
image = cv2.imread("opencv_logo.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray, 500, 0.1, 10)
for corner in corners:
x, y = corner.ravel()
cv2.circle(image, (int(x), int(y)), 3, (255, 0, 255), -1)
cv2.imshow("corners", image)
cv2.waitKey()
识别出来的特征几乎都是图像的转角。
转角是一种最简单的图像特征。
Original: https://blog.csdn.net/qq_61707205/article/details/124369687
Author: 拾忆&长安
Title: OpenCV快速入门——基础知识(上)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/704989/
转载文章受原作者版权保护。转载请注明原作者出处!