Page 77 - 人工智能——为机器植入智慧
P. 77

项目五  智能支付



                       (1)  完成边缘检测算法。





















                                                          图 5-6


                       (2)  完成霍夫变换,实现餐盘形状识别和直径大小判定。
                        霍夫变换主要代码:

                          Point cPoint[100];
                              int arr = 0;
                              Mat edges;
                              Mat img = imread("d:\\test.jpg");
                              char mstr[100];
                              strcpy(mstr, "start:");
                              cvtColor(img, edges, CV_BGR2GRAY);
                              GaussianBlur(edges, edges, Size(7, 7), 2, 2);
                              vector<Vec3f> circles;
                              HoughCircles(edges, circles, CV_HOUGH_GRADIENT, 1.5, 10, 200, 100, 0, 0);        // 霍夫变换
                              for (size_t i = 0; i < circles.size(); i++)
                              {
                                     Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
                                     if (searchPoint(center, &cPoint[0], &arr))
                                     {
                                            int radius = cvRound(circles[i][2]);
                                            char info[10];
                                            circle(img, center, 3, Scalar(0, 255, 0), -1, 8, 0);
                                            circle(img, center, radius, Scalar(155, 50, 255), 3, 8, 0);
                                            itoa(radius, info, 10);
                                            strcat(mstr, info);
                                            strcat(mstr, ";");
                                     }
                              }




                                                                                                          63
   72   73   74   75   76   77   78   79   80   81   82