一.简介 二.轮廓最小外接矩形的绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //轮廓最小外接矩形的绘制 Mat srcImg = imread("E://00.png"); Mat dstImg = srcImg.clone(); cvtColor(srcImg, srcImg, CV_BGR2GRAY); threshold(srcImg, srcImg, , , CV_TH…
Opencv中求点集的最小外结矩使用方法minAreaRect,求点集的最小外接圆使用方法minEnclosingCircle. minAreaRect方法原型: RotatedRect minAreaRect( InputArray points ); 输入参数points是所要求最小外结矩的点集数组或向量: minEnclosingCircle方法原型: void minEnclosingCircle( InputArray points, CV_OUT Point2f& center, C…
前一篇画出了最小外接矩形,但是有时候画出来的矩形由于中间像素干扰或者是其他原因矩形框并不是真正想要的 如图1是一个信号的雨图,被矩形框分割成了多个小框: 需要合并矩形框达到的效果: 主要思想: 扫描两次最小外接矩形,第一次扫描出的矩形是图一的小矩形,遍历vector指定一个合并最大距离(假设是80),达到指定距离使用画矩形函数将这两个矩形占据的组合区域染成实心矩形. 第二次扫描直接扫描之前画的实心矩形图确定最终边框 过程图 膨胀处理和像素翻转: 代码: #include "core/core.h…
#include "core/core.hpp" #include "highgui/highgui.hpp" #include "imgproc/imgproc.hpp" #include "iostream" #include "cmath" using namespace std; using namespace cv; int main(int argc,char *argv[]) { Mat im…
一.简介 二.外接矩形的查找绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //外接矩形的查找绘制 Mat srcImg =imread("E://12.jpg"); imshow("src",srcImg); Mat dstImg = srcImg.clone(); //原图备份 cvtColor(srcImg, srcImg, CV_BGR2GRAY); /…
一.简介 二.画出每个轮廓的每个点 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat src=imread("E://22.jpg"); Mat temp=src.clone(); //转灰度图,二值化 cvtColor(src,src,CV_BGR2GRAY); threshold(src,src,,,THRESH_BINARY); imshow("thres"…
一.简介 图2 二.代码 #include"opencv2/opencv.hpp" #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg = imread("E://02.png"); Mat tempImg = srcImg.clone(); //Mat draw(srcImg.rows, srcImg.cols, CV_8UC3); c…
一.简介 HSV颜色空间(hue色调,saturation饱和度,value亮度) 二.HSV滑动条 #include "opencv2/opencv.hpp" #include <iostream> using namespace cv; using namespace std; Mat srcImg, hsv_img; ,s_min = ,v_min = ; ,s_max = ,v_max = ; void onChange(int, void* param) { Sc…
一.运动物体轮廓椭圆拟合及中心 #include "opencv2/opencv.hpp" #include<iostream> using namespace std; using namespace cv; Mat MoveDetect(Mat frame1, Mat frame2) { Mat result = frame2.clone(); Mat gray1, gray2; cvtColor(frame1, gray1, CV_BGR2GRAY); cvtColo…
一.简介 二.背景减法 图片说明 #include "opencv2/opencv.hpp"using namespace cv; void main() { Mat img1 = imread("E:\\pic\\1.bmp"); Mat img2 = imread("E:\\pic\\55.bmp"); imshow("img1", img1); imshow("img2", img2); Mat gr…