Cześć, chcę zrobić program który wysegmentuje i zaznaczy obszary na obrazie gdzie występują wklęsłe kształty np. litera C. Mam już kod który odpowiada za wstępną binaryzację i detekcję konturów:
private void imageTopMenuOption_Click(object sender, EventArgs e)
{
if (imageInput == null)
{
MessageBox.Show("Najpierw wgraj obraz :)");
}
else
{
var temp = imageInput.Convert<Gray, byte>().ThresholdBinaryInv(new Gray(50), new Gray(255));
VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint();
Mat m = new Mat();
CvInvoke.FindContours(temp, contours, m, Emgu.CV.CvEnum.RetrType.External, Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple);
for (int i = 0; i < contours.Size; i++)
{
double perimeter = CvInvoke.ArcLength(contours[i], true);
VectorOfPoint approx = new VectorOfPoint();
CvInvoke.ApproxPolyDP(contours[i], approx, 0.04 * perimeter, true);
CvInvoke.DrawContours(imageInput, contours, i, new MCvScalar(0, 0, 255), 1);
}
pictureBoxResult.Image = imageInput.Bitmap;
}
}
Zwraca to jedynie poprawną detekcję krawędzi w tym tekstu na obrazie. Ale za nic nie wiem co dalej, a chyba już połowę internetu w tym przeszukałem więc bardzo prosiłbym o pomoc. Z góry dziękuję ;)