PCA降维应用示例:
#include<opencv2\opencv.hpp>
using namespace cv;
using namespace std;
double calcPCAorientation(vector<Point>&pts, Mat &image);
int main(int arc, char** argv) {
Mat src = imread("3.jpg");
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
Mat gray, binary;
cvtColor(src, gray, CV_BGR2GRAY);
threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
imshow("binary", binary);
vector<vector<Point>>contours;
findContours(binary, contours, RETR_LIST, CHAIN_APPROX_NONE);
Mat result = src.clone();
for (int i = 0; i < contours.size(); i++) {
double area = contourArea(contours[i]);
if (area > 1e5 || area < 1e2)con