天天看點

【人工智能】計算機視覺之OpenCV學習詳解一一,前言二,OpenCV安裝三,實戰學習四,源碼五,後言

一,前言

看準這個方向很久了,今天開始和Java,Go一起推進學習。不求多,每天學習一點點。

二,OpenCV安裝

作為Python選手的我,當然選擇了Python語言來學習OpenCV。

編譯器:還是使用pycharm哈。

安裝OpenCV-python子產品,可以使用pip安裝或者編譯器安裝。

本人親身體驗,編譯器安裝極慢,推薦使用清華大學的鏡像安裝。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
           

看情況,編譯器安裝也可。

三,實戰學習

import cv2
print(cv2.getVersionString())
           

先輸出看一下子產品版本,正常輸出版本号,代表正常。

函數imread(filepath,flags)讀入圖檔。

輸出他的大小參數資訊。

im=cv2.imread("C:/Users/24190/Pictures/zhu.jpg")
print(im.shape)
           

4.5.4

(150, 150, 3)

顯示圖像的函數imshow

cv2.imshow("im",im)
           

等待鍵盤輸入關閉,否則會一閃而過。

cv2.waitKey()
           

效果展示:

【人工智能】計算機視覺之OpenCV學習詳解一一,前言二,OpenCV安裝三,實戰學習四,源碼五,後言

3.1,色彩處理

【人工智能】計算機視覺之OpenCV學習詳解一一,前言二,OpenCV安裝三,實戰學習四,源碼五,後言

B GR順序存儲。

cv2.imshow("blue",im[:,:,0])
cv2.imshow("green",im[:,:,1])
cv2.imshow("red",im[:,:,2])
           

色彩分析:

【人工智能】計算機視覺之OpenCV學習詳解一一,前言二,OpenCV安裝三,實戰學習四,源碼五,後言

這個圖不明顯哈,換一個。

分析如下:

【人工智能】計算機視覺之OpenCV學習詳解一一,前言二,OpenCV安裝三,實戰學習四,源碼五,後言

光子數的灰階圖。

彩色圖檔恢複變換算法。

原理,把三個圖像做平方x和權重處理。

ga1=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
cv2.imshow("gary",ga1)
           
【人工智能】計算機視覺之OpenCV學習詳解一一,前言二,OpenCV安裝三,實戰學習四,源碼五,後言

說明了圖像粒子分布。

3.2,裁剪提取

裁剪:

crop=im[10:270,40:200]
cv2.imshow("crop",crop)
           

索引順序,先下在上。

【人工智能】計算機視覺之OpenCV學習詳解一一,前言二,OpenCV安裝三,實戰學習四,源碼五,後言

3.3,圖像繪制

使用numpy子產品

image =np.zeros([300,300,3],dtype=np.uint8)
           

建構一個300×300,邊框像素為3的黑色畫布

我們話一條線,文法:cv2. line (圖像, 起點, 終點, 顔色, 厚度)

cv2.line(image,(100,100),(250,250),(255,0,0),2)
           

繪制一個四邊形(圖檔,長方形框左上角坐标, 長方形框右下角坐标, 字型顔色,字型粗細)

cv2.rectangle(image,(30,100),(60,150),(0,255,0),2)
           

繪制一個圓(image, center_coordinates, radius, color, thickness)

cv2.circle(image,(150,100),20,(0,0,255),3)
           
cv2.putText(image,"hello",(100,50),0,1,(255,255,255),2,1)
           

四,源碼

import cv2
import numpy as np

image =np.zeros([300,300,3],dtype=np.uint8)

cv2.line(image,(100,100),(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("img",image)
cv2.waitKey()
           

五,後言