|
@@ -27,7 +27,7 @@ float FeedLevelDetector::findFeedSurface(const cv::Mat& image) {
|
|
|
|
|
|
float minY = image.rows; // 初始设置为图像高度
|
|
|
|
|
|
- // 查找所有轮廓中的最高点
|
|
|
+ // 查找所有轮廓中的最高点(距离顶部最近的点)
|
|
|
for (const auto& contour : contours) {
|
|
|
for (const auto& point : contour) {
|
|
|
if (point.y < minY) {
|
|
@@ -50,7 +50,7 @@ void FeedLevelDetector::displayResult(cv::Mat& image, float distance) {
|
|
|
cv::Point(image.cols-1, distance),
|
|
|
cv::Scalar(0, 0, 255), 2);
|
|
|
|
|
|
- // 显示距离信息
|
|
|
+ // 显示距离信息(图像坐标系原点在左上角)
|
|
|
std::string distanceText = "Distance: " + std::to_string(distance) + " pixels";
|
|
|
cv::putText(image, distanceText, cv::Point(20, 30),
|
|
|
cv::FONT_HERSHEY_SIMPLEX, 0.8, cv::Scalar(0, 255, 0), 2);
|
|
@@ -78,4 +78,6 @@ float FeedLevelDetector::detectFeedLevel(const std::string& imagePath) {
|
|
|
displayResult(image, distance);
|
|
|
|
|
|
return distance;
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+
|