Для этой цели в opencv есть несколько функций, но я хочу показать свой простой алгоритм. пока не достигнете белого пикселя (255)
Когда вы нажмете белый пиксель, который должен принадлежать кругу, отметьте его Сделайте все столбцы белыми до этого маркировочного пикселя
Вот результаты и код:
Ввод:
Результат:
Код:
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("/ur/img/directory/img.png",0);
imshow("Before", img);
for(int i=0; i<img.rows; i++)
{
for(int j=0; j<img.cols; j++)
{
if(img.at<uchar>(Point(j,i))>250)
{
for(int k=0; k<i; k++)
{
img.at<uchar>(Point(j,k)) = 255;
}
}
}
}
imshow("Result", img);
waitKey(0);
}