opencv_将图像上的4个点按逆时针排序
1:代码如下:
- #include "stdafx.h"
- #include "cxcore.h"
- #include "cvcam.h"
- #include "windows.h"
- #include "cv.h"
- #include "highgui.h"
- #include "iostream"
- using namespace std;
- CvMat* RankPoint(CvMat* p);
- /*输出矩阵*/
- void PrintMat2(CvMat*target, char * name)//第一个参数为cvMat矩阵指针,第二个参数为输出的矩阵的名字
- {
- printf("%s:\n", name);
- for (int i=; i<target->rows; i++)
- {
- for (int j=; j<target->cols;j++)
- {
- printf("%f\t", cvmGet(target, i,j));
- }
- printf("\n");
- }
- }
- CvMat* RankPoint(CvMat* p)
- {
- CvMat* p_dst=cvCreateMat(,,CV_32FC1);//图像上点的矩阵,竖着依次为u,v,1
- double a[][];
- a[][]=cvmGet(p,,); a[][]=cvmGet(p,,); a[][]=cvmGet(p,,); a[][]=cvmGet(p,,);
- a[][]=cvmGet(p,,); a[][]=cvmGet(p,,); a[][]=cvmGet(p,,); a[][]=cvmGet(p,,);
- //cout<<a[0][2]<<endl;
- double b;
- for(int j=3;j>1;j--)
- {
- for(int i=;i<j;i++)
- {
- if(a[][i]>=a[][i+])
- {
- b=a[][i];
- a[][i]=a[][i+];
- a[][i+]=b;
- b=a[][i];
- a[][i]=a[][i+];
- a[][i+]=b;
- }
- }
- }
- for(int i=;i<;i=i+)
- {
- if(a[][i]>=a[][i+])
- {
- b=a[][i];
- a[][i]=a[][i+];
- a[][i+]=b;
- b=a[][i];
- a[][i]=a[][i+];
- a[][i+]=b;
- }
- }
- cvmSet(p_dst,,,a[][]); cvmSet(p_dst,,,a[][]); cvmSet(p_dst,,,a[][]); cvmSet(p_dst,,,a[][]);
- cvmSet(p_dst,,,a[][]); cvmSet(p_dst,,,a[][]); cvmSet(p_dst,,,a[][]); cvmSet(p_dst,,,a[][]);
- cvmSet(p_dst,,,); cvmSet(p_dst,,,); cvmSet(p_dst,,,); cvmSet(p_dst,,,);
- return p_dst;
- /*------释放内存------*/
- cvReleaseMat(&p_dst);
- /*------------*/
- }
- int main()
- {
- CvMat* p_callback_circle=cvCreateMat(,,CV_32FC1);//图像上点的矩阵,竖着依次为u,v,1
- cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,);
- cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,);
- cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,); cvmSet(p_callback_circle,,,);
- PrintMat2(p_callback_circle, "p_callback_circle");
- CvMat* p_dst_callback_circle=cvCreateMat(,,CV_32FC1);//图像上点的矩阵,竖着依次为u,v,1
- p_dst_callback_circle=RankPoint(p_callback_circle);
- PrintMat2(p_dst_callback_circle, "p_dst_callback_circle");
- return ;
- }
运行结果:
opencv_将图像上的4个点按逆时针排序的更多相关文章
- OpenCV之响应鼠标(四):在图像上绘制出矩形并标出起点的坐标
涉及到两方面的内容:1. 用鼠标画出矩形.2.在图像上绘制出点的坐标 用鼠标绘制矩形,涉及到鼠标的操作,opencv中有鼠标事件的介绍.需要用到两个函数:回调函数CvMouseCallback和注册回 ...
- c# PictureBox 的图像上使用鼠标画矩形框
C# 中在图像上画框,通过鼠标来实现主要有四个消息响应函数MouseDown, MouseMove, MouseUp, Paint重绘函数实现.当鼠标键按下时开始画框,鼠标键抬起时画框结束. Poin ...
- 在DirectShow的视频图像上叠加线条和文字
在DirectShow的视频图像上叠加线条和文字 最近一直在从事工业测量方面的开发工作,难免会用到各种各样的相机,其中支持DX的USB相机开发起来比较方便,由于工作需要经常要在视频图像上叠加线条和文字 ...
- LindDotNetCore~docker里图像上生成中文乱码问题
回到目录 因为docker上的大部分镜像都是基于linux系统的,所以在向图像中写中文时需要考虑中文字体问题,例如在microsoft/aspnetcore2.0这个镜像,它是基于debian系统的, ...
- 机器学习进阶-图像金字塔与轮廓检测-模板匹配(单目标匹配和多目标匹配)1.cv2.matchTemplate(进行模板匹配) 2.cv2.minMaxLoc(找出矩阵最大值和最小值的位置(x,y)) 3.cv2.rectangle(在图像上画矩形)
1. cv2.matchTemplate(src, template, method) # 用于进行模板匹配 参数说明: src目标图像, template模板,method使用什么指标做模板的匹配 ...
- [图像]用Matlab在图像上画矩形框
原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/46819527 在毕业设计的时候写论文画图 ...
- 在YUV图像上根据背景色实现OSD反色
所谓的OSD其实就是在视频图像上叠加一些字符信息,比如时间,地点,通道号等, 在图像上叠加OSD通常有两种方式: 一种是在前端嵌入式设备上,在图像数据上叠加OSD, 这样客户端这边只需解码显示数据即可 ...
- 图像上划矩形(cv.line()函数)
在图像上划矩形 import numpy as npimport cv2 as cvimg=np.zeros((400,400),np.uint8)cv.line(img,(100,100),(350 ...
- OpenCV学习笔记(4)——图像上的算术运算
学习图像上的算术运算,加法,减法,位运算等 1.图像加法 使用cv2.add()将两幅图像进行加法运算,也可以用numpy运算,直接img+img1.两幅图像的大小和类型必须一致,或者第二个图像可以是 ...
随机推荐
- oa_mvc_easyui_后台布局(3)
1.新建HomeController控制器,并创建视图,后台的主页 2.easyUI的引用: <link href="~/Content/default/easyui.css" ...
- Chrome开发者工具详解(一)之使用断点来调试代码上
1.断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了.操作起来似乎很简单,其实很多人纠结的是,是在哪里打断 ...
- JS基础_标识符
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 机器学习-SVM-手写识别问题
机器学习-SVM-手写识别问题 这里我们解决的还是之前用KNN曾经解决过的手写识别问题(https://www.cnblogs.com/jiading/p/11622019.html),但相比于KNN ...
- mybatis-generator的功能扩展
项目代码地址:https://github.com/whaiming/java-generator 我在原有的基础上扩展了和修改了一些功能: 1.增加获取sqlServer数据库字段注释功能 2.Ma ...
- python-webdriver中添加cookie,解决添加了图片验证码的问题
遇到问题:之前一直能用的脚本突然跑不通了,仔细一看原来是研发新加了图片验证码...... 解决问题: 手动抓取了cookie并塞进去,解决问题.当然如果你的cookie有效期太短或者是随着会话关闭就失 ...
- dedecms 调用所属栏目的二级栏目列表
include\taglib\channel.lib.php 在 else if($type=='self') { if($reid==0) return ''; $sql = "SELEC ...
- QT 给工程添加图片
先打开如图的打开方式 然后我们看到以下的画面,选择下面的 然后我们选择如下:,这里我们要注意我们的图片资源有一定要和QRC资源在同一个文件夹中 之后我们通过在stylesheet里面设置来使用我们添加 ...
- dumpe2fs Linux支持的文件系统
dumpe2fs (-bh)装置文件名 选项与参数: -b : 列出保留为坏轨的部分 -h : 仅列出superblock的数据,不会列出其他的区段内容 查看Linux支持的文件系统哪些支持: ls ...
- cmd中subst的使用
SUBST [drive1: [drive2:]path] drive1: 指定要指派路径的虚拟驱动器.[drive2:]path 指定物理驱动器和要指派给虚拟驱动器的路径. 路径替换 ...