擅长:python、mysql、java
<pre><code>cv::Mat crop(cv::Mat image){
cv::Mat cropped, grayed, thresh, result;
std::vector < std::vector < cv::Point >> contours;
std::vector<cv::Vec4i> hierarchy;
cvtColor(image, grayed, cv::COLOR_BGR2GRAY);
threshold(grayed, thresh, 1, 255, cv::THRESH_BINARY);
findContours(result, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
std::vector<int> x, y;
for (int i = 0; i < contours.size(); i++){
for (int j = 0; j <= contours.at(i).size(); j++){
x.push_back(contours.at(i).at(j).x);
y.push_back(contours.at(i).at(j).y);
}
}
int x1 = std::min_element(x.begin(), x.end());
int x2 = std::max_element(x.begin(), x.end());
int y1 = std::min_element(y.begin(), y.end());
int y2 = std::max_element(y.begin(), y.end())
cv::Rect rect(x1, y1, x2 - x1, y2 - y1);
cropped = image(rect);
return cropped;
}
</code></pre>
<p>试试这个</p>