有没有办法使用OpenCV将晕圈的中心孔设置为白色像素,这样我才能得到一个纯白色圆圈?我尝试过使用扩张和侵蚀形态学功能。它们使图像更清晰(如您所见),但中心仍为黑色。
答案 0 :(得分:3)
您可以简单地找到外部轮廓,然后填充整个轮廓:
代码:
#include <opencv2\opencv.hpp>
#include <vector>
using namespace std;
using namespace cv;
int main()
{
// Read grayscale image
Mat1b img = imread("path_to_image", IMREAD_GRAYSCALE);
// Find external contour
vector<vector<Point>> contours;
findContours(img.clone(), contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// Check that you find something
if (!contours.empty())
{
// Fill the first (and only) contour with white
drawContours(img, contours, 0, Scalar(255), CV_FILLED);
}
// Show result
imshow("Filled", img);
waitKey();
return 0;
}