OpenCV學習指南——開篇

什麼是OpenCV

  OpenCV是什麼?OpenCV是一個跨平臺的計算機視覺庫,全稱是Open Source Computer Vision Library。OpenCV主要用於圖像處理、計算機視覺以及模式識別程序,由Intel公司發起並參與。
在這裏插入圖片描述

如何入門OpenCV

  讀者可以通過Python 或者C++入門OpenCV,C++版本的OpenCV還使用了Cuda和SSE等方式進行加速,想要讀懂OpenCV的源碼可能需要數年的軟件功底。但不論是使用C++版本的OpenCV還是Python版本的OpenCV,這個過程都不會太複雜。
這裏以Python代碼展開介紹。不論你要使用一個怎樣的三方庫,數據結構和算法的瞭解是必不可少的,Python版本的OpenCV中,最爲核心的數據結構是numpy的ndarray(而C++版本的OpenCV中,其最核心的數據結構是cv::Mat)。在執行大型算法時,Python OpenCV可以用於驗證算法的時間複雜度,儘管同等情況下,Python代碼的速率要低於C++,但其底層調用的複雜庫仍然是通過C++實現的。只要有耐心學習,你會漸入佳境,覺得圖像處理的算法也並不複雜。

動手嘗試

# -*- coding: utf-8 -*-
import cv2
import numpy as np
# 構建一張圖
width = 512
height = 512
img = np.zeros([width, height, 3], dtype=np.uint8)
# 遍歷每個像素點,並進行賦值
for i in range(width):
    for j in range(height):
        img[i, j, :] = [i % 256, (255-j) % 256, (255-i + j) % 256]
​
# 展示圖片
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', img)
cv2.imwrite("image.jpg",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在這裏插入圖片描述
  這段代碼只是利用三原色的漸變,就形成了一張色彩繽紛的圖案。
  漸變和隨機是大自然最常用的兩種算法,也藉此構造出了許多美麗的圖案。諸如以下圖片的生成,先用隨機算法去生成點,然後用特定算法去連線,接着再對區域進行填充。
在這裏插入圖片描述

OpenCV能做什麼

  當然,這些只是圖像處理的冰山一角,不論你想成爲一個頂級的機器視覺大師,還是隻是想簡單的調用圖像處理的工具,OpenCV對你來說都是一個極佳的選擇。建議編程功底好的同學選擇OpenCV的C++版本進行入門,對自己的編程功底不那麼自信,或者時間上不夠充裕的同學,建議選擇OpenCV的Python版本入門。在Python中安裝OpenCV僅需要一條語句:pip install opencv-python。除了基本功能外,OpenCV還有拓展模塊contrib值得了解。
  那麼OpenCV都實現了哪些基礎功能呢?OpenCV集成了常規的圖像操作,圖像濾波和圖像拼、輪廓提取等功能。除此之外,值得一提的是,OpenCV也實現了複雜的統計機器學習庫,在學習統計機器學習算法的過程中,學者可以通過OpenCV源碼對統計機器學習算法有更深入的理解。
  如果你是一個算法開發者,即便你不需要使用OpenCV,但我還是建議你瞭解它,比如,你需要驗證一個算法的時候,圖像將能爲你提供最多的數據​。比如,你可以用蟻羣算法來提取輪廓,以瞭解蟻羣算法。以下是筆者在github上發佈的蟻羣提取輪廓源代碼

OpenCV進階

  對於一個程序員而言,不論使用一個三方庫再怎麼熟練,如果不能瞭解深層次的原理,終歸只是一個使用者。筆者認爲,一個程序員應當挑戰開發者。這是筆者耐心編譯過後可供調用的OpenCV+Contirb的SDK三件套(.h,.lib,.dll)
  相關詳細教程,請閱讀win10系統下的OpenCV環境搭建

作者聲明

  關於近期一些公衆號以故事博眼球的做法,筆者這裏有話說。因爲CSDN博客有一定的訪問量,筆者在CSDN上收到過一些公衆號發來寫文章的邀請,看了對方的公衆號才發現,對方几乎不發技術性的文章,絕大多數的文章的標題都是這樣的:二十九歲成爲清華博導,這是她寫給學子們的一封信。…這是北京大學計算機博士小姐姐關注的微信公衆號。打工妹逆襲斬獲BAT華爲大廠的Offer。​諸如此類,以話題博眼球,並不任何內涵的文章。Cclplus在此聲明,永遠真摯的以解說和技術性文章爲主。同時,作者承諾,CSDN上的文章,將永不收費。不過,如果你認爲打賞我是有必要的,我的支付寶賬號是[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章