当前位置: 首页 > news >正文

北京企业建网站公司新变更营业执照注册号查了发现之前有备案过网站了

北京企业建网站公司,新变更营业执照注册号查了发现之前有备案过网站了,两当网站建设,制作和淘宝商城一样网站Opencv 之ORB特征提取与匹配API简介及使用例程 ORB因其速度较快常被用于视觉SLAM中的位姿估计、视觉里程、图像处理中的特征提取与匹配及图像拼接等领域本文将详细给出使用例程及实现效果展示 1. API 简介 创建 static PtrORB cv::ORB::create (int nfeatures 500…Opencv 之ORB特征提取与匹配API简介及使用例程 ORB因其速度较快常被用于视觉SLAM中的位姿估计、视觉里程、图像处理中的特征提取与匹配及图像拼接等领域本文将详细给出使用例程及实现效果展示 1. API 简介 创建 static Ptrlt;ORBgt; cv::ORB::create (int nfeatures 500, //nfeatures 最终输出最大特征点数目float scaleFactor 1.2f, // scaleFactor 金字塔上采样比率int nlevels 8, // nlevels 金字塔层数int edgeThreshold 31, // edgeThreshold 边缘阈值int firstLevel 0,int WTA_K 2, // WTA_K这个是跟BRIEF描述子用的ORB::ScoreType scoreType ORB::HARRIS_SCORE, // scoreType 对所有的特征点进行排名用的方法int patchSize 31,int fastThreshold 20 )检测 void cv::Feature2D::detect ( InputArray image, //输入图像std::vector KeyPoint keypoints, //待搜索特征点InputArray mask noArray() //操作掩码) 计算 void cv::Feature2D::compute ( InputArrayOfArrays images, //输入图像std::vector std::vector KeyPoint keypoints,OutputArrayOfArrays descriptors //描述子) 检测与计算 void cv::Feature2D::detectAndCompute ( InputArray image,InputArray mask,std::vector KeyPoint keypoints,OutputArray descriptors,bool useProvidedKeypoints false ) 绘制特征点 void cv::drawMatches ( InputArray img1,const std::vector KeyPoint keypoints1,InputArray img2,const std::vector KeyPoint keypoints2,const std::vector DMatch matches1to2,InputOutputArray outImg,const Scalar matchColor Scalar::all(-1),const Scalar singlePointColor Scalar::all(-1),const std::vector char matchesMask std::vector char (),DrawMatchesFlags flags DrawMatchesFlags::DEFAULT ) 绘制匹配点对 void cv::drawMatches ( InputArray img1,const std::vector KeyPoint keypoints1,InputArray img2,const std::vector KeyPoint keypoints2,const std::vector DMatch matches1to2,InputOutputArray outImg,const Scalar matchColor Scalar::all(-1),const Scalar singlePointColor Scalar::all(-1),const std::vector char matchesMask std::vector char (),DrawMatchesFlags flags DrawMatchesFlags::DEFAULT ) 2. 特征提取 讲述特征点提取与描述子计算实现如下 int main() {Mat img imread(./data/test3/lena.png);if (!img.data || img.empty()){cout 图像读取错误 endl;return -1;}//创建ORB关键点PtrORB orb ORB::create(500, 1.2f);double t1 getTickCount();vectorKeyPointKeypoints;Mat descriptions; #if 0//计算ORB关键点orb-detect(img, Keypoints);//计算ORB描述子orb-compute(img, Keypoints, descriptions); #elseorb-detectAndCompute(img, cv::Mat(), Keypoints, descriptions); #endif // 0double t2 (getTickCount() - t1) / getTickFrequency() * 1000;cout img.size img.size() , cost time t2 ms\n;//绘制特征点Mat imgAngle;img.copyTo(imgAngle);//绘制不含角度和大小的结果drawKeypoints(img, Keypoints, img, Scalar(255, 255, 255));//绘制含有角度和大小的结果drawKeypoints(img, Keypoints, imgAngle, Scalar(255, 255, 255), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);//显示结果string wname1 不含角度和大小的结果, wname2 含角度和大小的结果;namedWindow(wname1, WINDOW_NORMAL);namedWindow(wname2, 0);imshow(wname1, img);imshow(wname2, imgAngle);waitKey(0);return 1; }3. 特征匹配 暴力匹配实现 #includeiostream #includeopencv2/opencv.hpp #includevectorusing namespace std; using namespace cv;int main() {//灰度格式读取Mat img1, img2;img1 imread(./data/test3/1.jpg,IMREAD_GRAYSCALE);img2 imread(./data/test3/2.jpg,0);if (img1.empty() || img2.empty()){cout img.empty!!!\n;return -1;}//提取orb特征点vectorKeyPointKeypoints1, Keypoints2;Mat descriptions1, descriptions2;//计算特征点orb_features(img1, Keypoints1, descriptions1);orb_features(img2, Keypoints2, descriptions2);//特征点匹配vectorDMatchmatches; BFMatcher matcher(NORM_HAMMING); //定义特征点匹配的类使用汉明距离matcher.match(descriptions1, descriptions2, matches);cout matches matches.size() endl;//通过汉明距离筛选匹配结果double min_dist 10000, max_dist 0;for (int i 0; i matches.size(); i){double dist matches[i].distance;min_dist min_dist dist ? min_dist : dist;max_dist max_dist dist ? max_dist : dist;}//输出计算的最大、最小距离cout min_dist min_dist endl;cout max_dist max_dist endl;//通过距离提出误差大的点vectorDMatchgoodmatches;for (int i 0; i matches.size(); i){if (matches[i].distance MAX(1.8 * min_dist, 30)) //需调参{goodmatches.push_back(matches[i]);}}cout good_min goodmatches.size() endl;//绘制结果Mat outimg, outimg1;drawMatches(img1, Keypoints1, img2, Keypoints2, matches, outimg);drawMatches(img1, Keypoints1, img2, Keypoints2, goodmatches, outimg1);string wname1 未筛选结果, wname2 最小汉明距离筛选;namedWindow(wname1, WINDOW_NORMAL);namedWindow(wname2, 0);imshow(wname1, outimg);imshow(wname2, outimg1);waitKey(0);return 1; }其效果如下 最近邻匹配实现如下 if (descriptions1.type() ! CV_32F){descriptions1.convertTo(descriptions1, CV_32F);descriptions2.convertTo(descriptions2, CV_32F);}//特征点匹配vectorDMatchmatches;FlannBasedMatcher matcher; //定义特征点匹配的类使用汉明距离matcher.match(descriptions1, descriptions2, matches);cout matches matches.size() endl;//通过汉明距离筛选匹配结果double min_dist 10000, max_dist 0;for (int i 0; i matches.size(); i){double dist matches[i].distance;min_dist min_dist dist ? min_dist : dist;max_dist max_dist dist ? max_dist : dist;}//输出计算的最大、最小距离cout min_dist min_dist endl;cout max_dist max_dist endl;//通过距离提出误差大的点vectorDMatchgoodmatches;for (int i 0; i matches.size(); i){if (matches[i].distance 0.6 * max_dist) //需调参{goodmatches.push_back(matches[i]);}}cout good_min goodmatches.size() endl;其效果如下 RANSAC优化匹配 void ransac(vectorDMatchmatches, vectorKeyPointqueryKeyPoint,vectorKeyPointtrainKeyPoint, vectorDMatch matches_ransac) {//定义保存匹配点对坐标vectorPoint2fsrcPoints(matches.size()), dstPoints(matches.size());//保存从关键点中提取到的匹配点对坐标for (int i 0; i matches.size(); i){srcPoints[i] queryKeyPoint[matches[i].queryIdx].pt;dstPoints[i] trainKeyPoint[matches[i].trainIdx].pt;}//匹配点对RANSAC过滤vectorintinlierMask(srcPoints.size());findHomography(srcPoints, dstPoints, RANSAC, 5, inlierMask);//手动保留RANSAC过滤后的匹配点对for (int i 0; i inlierMask.size(); i){if (inlierMask[i])matches_ransac.push_back(matches[i]);} }//*************************RANSAC******************************************* //main函数中放在暴力匹配代码后//特征点匹配vectorDMatchmatches; BFMatcher matcher(NORM_HAMMING); //定义特征点匹配的类使用汉明距离matcher.match(descriptions1, descriptions2, matches);cout matches matches.size() endl;//通过汉明距离筛选匹配结果double min_dist 10000, max_dist 0;for (int i 0; i matches.size(); i){double dist matches[i].distance;min_dist min_dist dist ? min_dist : dist;max_dist max_dist dist ? max_dist : dist;}//输出计算的最大、最小距离cout min_dist min_dist endl;cout max_dist max_dist endl;//通过距离提出误差大的点vectorDMatchgoodmatches;for (int i 0; i matches.size(); i){if (matches[i].distance MAX(1.8 * min_dist, 30)) //需调参{goodmatches.push_back(matches[i]);}}cout good_min goodmatches.size() endl;//RANSAC优化vectorDMatchgood_ransac;ransac(goodmatches, Keypoints1, Keypoints2, good_ransac);cout good_ransac good_ransac.size() endl;Mat output_;drawMatches(img1, Keypoints1, img2, Keypoints2, good_ransac, output_);namedWindow(ransac, 0);imshow(ransac, output_);
http://wiki.neutronadmin.com/news/394476/

相关文章:

  • 哪里网站建设便宜网站建设 公司
  • 商城网站建设天软科技国外网页设计评论网站
  • 做资源网站需要什么免费外网加速器
  • wordpress建站软件恒一信息深圳网站建设公司1
  • wap自助建论坛网站wordpress 树形菜单插件
  • 企业模板网站建设wordpress h1美化
  • 箱包设计网站一般建站需要多少钱
  • 网站开发需要掌握哪些技术网站开发竞争对手分析
  • 微信卖水果链接网站怎么做的郑州做网页的公司
  • 怎样建设那种游戏网站江西网站建设费用
  • asp漂亮的个人网站模板辽宁平台网站建设平台
  • 找工作一般上什么网站比较好电子商务专业论文选题
  • 校园网站制作方法搜索网站的设计与建设
  • 有些网站仿出问题网站信息查询
  • 破解要钱网站iapp网站做软件教程
  • 网站编辑软件有哪些wordpress如何编辑页面
  • 网站开发综合实训wordpress 访问者
  • 专业做辅助的网站跨境电商手机app平台
  • 湛江网站设计公司地址网页制作基础教程背景图片
  • 凡客建网站网站域名解析错误怎么办
  • 有什么电商网站做推广赚佣金的四川建设网共享平台
  • 网站开发工资多少稳定么网站建设企
  • 餐饮vi设计案例欣赏网站及搜索引擎优化建议
  • 购物网站app深圳公司排名前100名
  • 外国平面设计网站有哪些电商网站购买的流程图
  • 重庆网站建设 cqhtwl高端品牌全屋定制
  • 重新安wordpress网站企业免费网站
  • 关键词搜索网站商城网站哪个公司做的好处
  • 怎么做自己网站里的资讯wordpress邮箱订阅
  • 深圳创意网站产品推广介绍