基于RDP算法实现,目的是减少多边形轮廓点数。 流程: 首先将图像变为二值图像 发现轮廓,找到图像轮廓 通过相关API在轮廓点上找到最小包含矩形和圆,旋转矩形和椭圆 绘制他们
代码如下:
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
Mat src, dst, gray_src;
int threshold_value = 100;
int threshold_max = 255;
const char* output_title = "result image";
const char* trackbar_title = "Threshold Value";
void Contours_Callback(int, void*);
RNG rng(12345);
int main(int argc, char** argv) {
src = imread("1.png"); //D:\\sougou\\image\\2.jpg 9.jpg
if (!src.data) {
printf("could not load image...\n");
return -1;
}
char input_image[] = "input image";
namedWindow(input_image, WINDOW_AUTOSIZE);
namedWindow(output_title, WINDOW_AUTOSIZE);
imshow(input_image, src);
cvtColor(src, gray_src, CV_BGR2GRAY);
//imshow("gray image
|