BONJOUR A TOUS,
CECI EST LE CODE DE DETCTION DE TRIANGLES EN C# J'AI CONVERTI EN VC++ MAIS IL Y A QUELQUES INSTRUCTIONS QUE J'AI PAS ARRIVE 0 LES CONVERTIR EST CE QUE QUELQU1 PEUT M'AIDER
//Load the image from file
Image<Bgr, Byte> img =new Image<Bgr, byte>(fileNameTextBox.Text).Resize(400, 400, true);
//Convert the image to grayscale and filter out the noise
Image<Gray, Byte> gray = img.Convert<Gray, Byte>().PyrDown().PyrUp();
Gray cannyThreshold =new Gray(180);
Gray cannyThresholdLinking =new Gray(120);
Gray circleAccumulatorThreshold =new Gray(120);
CircleF[] circles = gray.HoughCircles(
cannyThreshold,
circleAccumulatorThreshold,
5.0, //Resolution of the accumulator used to detect centers of the circles
10.0, //min distance
5, //min radius
0 //max radius
)[0]; //Get the circles from the first channel
Image<Gray, Byte> cannyEdges = gray.Canny(cannyThreshold, cannyThresholdLinking);
LineSegment2D[] lines = cannyEdges.HoughLinesBinary(
1, //Distance resolution in pixel-related units
Math.PI/45.0, //Angle resolution measured in radians.
20, //threshold
30, //min Line width
10//gap between lines
)[0]; //Get the lines from the first channel
#region Find triangles and rectangles
List<Triangle2DF> triangleList =new List<Triangle2DF>();
List<MCvBox2D> boxList =new List<MCvBox2D>();
using(MemStorage storage =new MemStorage())//allocate storage for contour approximation
for(Contour<Point> contours = cannyEdges.FindContours(); contours != null; contours = contours.HNext)
{
//SURTOUT CETTE PARTIE EN DESSOUS EST CE QUE VOUS POUVEZ MAIDER:
Contour<Point> currentContour = contours.ApproxPoly(contours.Perimeter*0.05, storage);
if(contours.Area>250)//only consider contours with area greater than 250
{
if(currentContour.Total==3)//The contour has 3 vertices, it is a triangle
{
Point[] pts = currentContour.ToArray();
triangleList.Add(new Triangle2DF(
pts[0],
pts[1],
pts[2]
));
}
MERCI BEAUCOUP
amel