本文主要是介绍opencv 学习之 轮廓操作笔记(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、轮廓之外的区域像素置0
根据最小外接矩形,仿射变换至无偏转矩形。外接矩形结构体导出顶点是按顺时针结构排列的,但是起点不定。
int SetExcludeRectZero(Mat & gray, RotatedRect rect)
{Point2f vertex1[4], vertex2[4]; //定义外接矩形的4个顶点 //定点的排序为逆时针rect.points(vertex1);rect.points(vertex2);int width = rect.size.width;int height = rect.size.height;Point2f certer = rect.center;//修正vertex2,使其无倾斜for (int k = 0; k < 4; k++){int index1 = k;int index2 = (k + 1) % 4;if (vertex2[index1].x < rect.center.x && vertex2[index2].x < rect.center.x){ //坐标逆时针排序vertex2[index1].x = certer.x - width / 2;vertex2[index1].y = certer.y + height / 2;vertex2[index2].x = certer.x - width / 2;vertex2[index2].y = certer.y - height / 2;index1 = (k + 2) % 4;index2 = (k + 3) % 4;vertex2[index1].x = certer.x + width / 2;vertex2[index1]
这篇关于opencv 学习之 轮廓操作笔记(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!