pca的詳細功能不是很了解。但是,發現用它來求形心非常好。輸入為findcontours之後的輪廓點,輸出為形心的座標。
話不多說,上**。
//開發環境,opencv3.1.0+vs2013
#include #include using namespace std;
using namespace cv;
cv::point chao_getcentroid(std::vectorlist);//得到形心座標,
int main()
imshow("src", src);
mat gray;
cvtcolor(src, gray, color_bgr2gray);
mat bw;
threshold(gray, bw, 50, 255, cv_thresh_binary | cv_thresh_otsu);
vectorhierarchy;
vector> contours;
mat bw_back = 255 - bw;
for (size_t i = 0; i < contours.size(); ++i)
imshow("output", src);
waitkey(0);
return 0;
}cv::point chao_getcentroid(std::vectorlist)
//perform pca analysis
pca pca_analysis(data_pts, mat(), cv_pca_data_as_row);
//store the center of the object
point cntr = point(static_cast(pca_analysis.mean.at(0, 0)),
static_cast(pca_analysis.mean.at(0, 1)));
return cntr;
}
效果如下圖所示
關於pca詳細使用,可參考官方例程,opencv3.1.0\sources\samples\cpp\tutorial_code\ml\introduction_to_pca資料夾下的introduction_to_pca.cpp檔案
OPENCV繪製指定色塊的輪廓和形心
效果展示 思路是將轉化為hsv格式,然後用inrange函式變為黑白二值化影象,二值化影象有噪點時用開操作閉操作去除,用canny運算元檢測邊緣,findcontours函式尋找輪廓,再計算輪廓矩 和中心,再繪製輪廓和形心 轉化為hsv格式 圖為各種顏色的hsv值對應表 cvtcolor src,h...
美麗的心形函式
剛剛使用docker 安裝了,tensorflow 的環境 發現上面的帶了好多的畫圖的函式。於是研究起心型函式。使用np畫圖 from matplotlib import pyplot as plt import numpy as np size 2 x np.linspace size,size,...
美麗的心形函式
剛剛使用docker 安裝了,tensorflow 的環境 發現上面的帶了好多的畫圖的函式。於是研究起心型函式。使用np畫圖 from matplotlib import pyplot as plt import numpy as np size 2 x np.linspace size,size,...