gpt4 book ai didi

c++ - OpenCV 检测变暗的矩形

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:31 29 4
gpt4 key购买 nike

我正在尝试使用 OpenCV 来隔离覆盖有大量文本的半透明变暗矩形区域。这些矩形区域在窗口中的大小和位置可以变化。有没有办法检测这些变暗的区域?

enter image description here

也许在显示暗区叠加之前应用一些差异操作并与帧进行比较会更容易?

最佳答案

这应该会为您提供基于两张图像的所有边界框。

#include <cv.h>
#include <highgui.h>

using namespace cv;

Mat im = imread("original.jpg");
Mat im2 = imread("darkened.jpg");

Mat diff_im = im - im2;

Mat diff_im_binary;
threshold(diff_im, diff_im_binary, 30, 255, THRESH_BINARY);

findContours(diff_im_binary, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );

/// Approximate contours to polygons + get bounding rects and circles
vector<vector<Point> > contours_poly( contours.size() );
vector<Rect> boundRect( contours.size() );
vector<Point2f>center( contours.size() );
vector<float>radius( contours.size() );

for( int i = 0; i < contours.size(); i++ )
{
approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true );
boundRect[i] = boundingRect( Mat(contours_poly[i]) );
}

关于c++ - OpenCV 检测变暗的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37216439/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com