原创 OpenCv - 輪廓練習二(8.1)

OpenCV3 中cvFindDominantPoints 這個函數用什麼替代了? 題目:用keynote畫了一個圖片,然後灰度化、二值化、查找輪廓,描述輪廓,最後查看關鍵點。 #include <iostream> #include <

原创 《學習OpenCV》第八章輪廓課後題

畫一個圓,求輪廓,並用矩形逼近,求周長 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> using namespa

原创 Canny算子

在Canny邊緣檢測法中,首先是在x和y方向求一階導數,然後組合爲4個方向的導數。這些方向導數達到局部最大值的點就是組成邊緣的候選點。 Canny算法中最重要的一個新特點就是其試圖將獨立邊緣的候選像素拼裝成輪廓。輪廓的形成是對這些像素運用

原创 OpenCV - 輪廓練習一

我們檢測輸入圖像的輪廓,然後追個繪製每個輪廓。 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <stri

原创 cvFilter2D瞭解和使用

cvFilter2D()函數接口void cvFilter2D(  const CvArr* src,  CvArr* dst, const CvMat* kernel, CvPoint anchor=cvPoint(-1,-1) );

原创 OpenCV 閾值化操作cvThreshold 和 自適應閾值cvAdaptiveThreshold操作

載入一幅圖片,使用cvThreshold函數對其進行操作,設置閾值爲128。 使用自適應閾值進行同樣操作 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv

原创 圖像的梯度和幅值

圖像的梯度:梯度的方向是函數f(x,y)變化最快的方向,當圖像中存在邊緣時,一定有較大的梯度值,相反,當圖像中有比較平滑的部分時,灰度值變化較小,則相應的梯度也較小,圖像處理中把梯度的模簡稱爲梯度,由圖像梯度構成的圖像成爲梯度圖像。 練習

原创 OpenCV-輪廓

Canny邊緣檢測算法可以根據像素間的差異檢測出輪廓邊界的像素,但是並沒有將輪廓作爲一個整體。 利用cvFindContours()可以實現把邊緣像素組裝成輪廓。 有關內存和序列的知識比較多和複雜,就不在這裏詳細闡述了。 下面先給出一個輪

原创 《學習OpenCV》第七章直方圖(練習7.1)

《學習OpenCV》第七章課後題一 7.1 在0-1之間生成1000個隨機值ri,定義一個bin的大小,並且建立一個直方圖幾1/ri。 在每一個bin中元素數是否相同(正負差值在10內即可) #include <iostream> #i

原创 直方圖均衡化

直方圖均衡化最廣泛的應用是嘗試擴大圖像的動態範圍。 直方圖均衡化後面潛在的數學原理是一個分佈(輸入的亮度直方圖)被映射到另一個分佈(一個更寬,理想統一的亮度值分佈)。 void cvEqualizeHist(const CvArr * s

原创 LogPolar 座標變換

對於二維圖像,Log-Polar表示從笛卡爾座標到極座標的變換。 OpenCV中對於數極座標轉換的函數是cvLogPolar(): void cvLogPolar(const CvArr * src , CvArr * det , CvP

原创 拉普拉斯變換

void cvLaplace(const CvArr * src,CvArr * det , int  apertureSize=3) 該函數通常把原圖像和目標圖像以及中孔大小作爲變量。 原圖像可以是8位(無符號)圖像,也可以是32位(浮