问题描述
照片是来自太空望远镜的星云图像,科学家想知道它的面 积与周长。
解决思路
方法一: 通过二值分割+图像形态学+轮廓提取

#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h> using namespace cv;
using namespace std; int main(int argc, char** argv) {
Mat src = imread("D:/case7.png");
if (src.empty()) {
printf("could not load image...\n");
return -;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
imshow("input image", src); Mat blurImage;
//高斯模糊
GaussianBlur(src, blurImage, Size(, ), , );
//imshow("blur", blurImage); Mat gray_src, binary;
cvtColor(blurImage, gray_src, COLOR_BGR2GRAY);
threshold(gray_src, binary, , , THRESH_BINARY | THRESH_TRIANGLE);
//imshow("binary", binary); // 形态学操作
Mat morphImage;
Mat kernel = getStructuringElement(MORPH_RECT, Size(, ), Point(-, -));
morphologyEx(binary, morphImage, MORPH_CLOSE, kernel, Point(-, -), );
//imshow("morphology", morphImage); // 获取最大轮廓
vector<vector<Point>> contours;
vector<Vec4i> hireachy;
findContours(morphImage, contours, hireachy, CV_RETR_EXTERNAL, CHAIN_APPROX_SIMPLE, Point());
Mat connImage = Mat::zeros(src.size(), CV_8UC3);
for (size_t t = ; t < contours.size(); t++) {
Rect rect = boundingRect(contours[t]);
if (rect.width < src.cols / ) continue;
if (rect.width > (src.cols - )) continue;
//计算面积
double area = contourArea(contours[t]);
//计算长度
double len = arcLength(contours[t], true);
drawContours(connImage, contours, static_cast<int>(t), Scalar(, , ), , , hireachy);
printf("area of star could : %f\n", area);
printf("length of star could : %f\n", len);
}
imshow("result", connImage); waitKey();
return ;
}

opencv实践::对象提取与测量的更多相关文章

  1. opencv实践::对象的提取

    问题描述 真实案例,对图像中对象进行提取,获取这样对象,去掉其它干扰和非目标对象. 解决思路 二值分割 + 形态学处理 +横纵比计算 #include <opencv2/opencv.hpp&g ...

  2. opencv——对象提取与测量

    #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespac ...

  3. opencv实践::对象计数

    问题描述 真实案例,农业领域经常需要计算对象个数 或者在其它领域拍照自动计数,可以提供效率,减低成本 解决思路 通过二值分割+形态学处理+距离变换+连通区域计算 #include <opencv ...

  4. OpenCV函数:提取轮廓相关函数使用方法

    opencv中提供findContours()函数来寻找图像中物体的轮廓,并结合drawContours()函数将找到的轮廓绘制出.首先看一下findContours(),opencv中提供了两种定义 ...

  5. HOG:从理论到OpenCV实践

    (转载请注明出处:http://blog.csdn.net/zhazhiqiang/ 未经允许请勿用于商业用途) 一.理论 1.HOG特征描述子的定义:     locally normalised ...

  6. OpenCV特征点提取----Fast特征

    1.FAST(featuresfrom accelerated segment test)算法 http://blog.csdn.net/yang_xian521/article/details/74 ...

  7. SVM:从理论到OpenCV实践

    (转载请注明出处:http://blog.csdn.net/zhazhiqiang/ 未经允许请勿用于商业用途)   一.理论 参考网友的博客: (1)[理论]支持向量机1: Maximum Marg ...

  8. opencv java api提取图片sift特征

    opencv在2.4.4版本以后添加了对java的最新支持,可以利用java api了.下面就是我利用opencv的java api 提取图片的sift特征. import org.opencv.co ...

  9. 【opencv实践】边缘检测

    边缘检测: 一.canny算子 Canny边缘检测根据对信噪比与定位乘积进行测度,得到最优化逼近算子,也就是Canny算子.类似与 LoG 边缘检测方法,也属于先平滑后求导数的方法. 二.canny算 ...

随机推荐

  1. Cookie的有效路径

    程序实现: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletE ...

  2. spring boot 整合mybatis 的xml版本【包括逆向工程以及分页插件】

    逆向工程很方便,可以直接根据数据库和配置文件生成pojo,mapper接口和相应的映射文件. xml版本和全注解版本其实差不多,大部分情况下,都会保留xml文件方便其他人去扩展新的dml方法. 文章旨 ...

  3. 校园网打开IEEE 显示未登录

    校园网访问IEEE 显示未登录,如图 解决办法 1.打开网络和共享中心 2.如图 3.把ipv6的钩去掉 4.把host文件(在C:\Windows\System32\drivers\etc)复制到桌 ...

  4. windows无法安装到这个磁盘怎样解决,及激活

    在cmd输入.sql server 2008  slmgr.vbs -ipk KH2J9-PC326-T44D4-39H6V-TVPBY  这个问题遇到的挺多次的,依稀记得上次搞这个问题搞了很久,今天 ...

  5. Eureka Server不剔除已关停的节点的问题

    由于Eureka拥有自我保护机制,当其注册表里服务因为网络或其他原因出现故障而关停时,Eureka不会剔除服务注册,而是等待其修复.这是AP的一种实现. 自我保护机制:Eureka Server在运行 ...

  6. openssl req(生成证书请求和自建CA)(转)

    openssl req(生成证书请求和自建CA)     伪命令req大致有3个功能:生成证书请求文件.验证证书请求文件和创建根CA.由于openssl req命令选项较多,所以先各举几个例子,再集中 ...

  7. java8 两个时间比较

    比如在15:30:30之前: LocalTime.now().isBefore(LocalTime.of(15, 30,30)) 或15:30:30之后 LocalTime.now().isAfter ...

  8. jQuery三级联动效果代码(省、市、区)

    很长时间都不用jquery了,有人问我jquery写三级联动的插件我就写好了发出来吧,正好需要的人都可以看看. 一.html代码 <!DOCTYPE html> <html> ...

  9. 理解 Redux 的中间件

    将该思想抽象出来,其实和 Redux 就无关了.问题变成,怎样实现在截获函数的执行,以在其执行前后添加自己的逻辑. 为了演示,我们准备如下的示例代码来模拟 Redux dispatch action ...

  10. Android自动跳过app开屏广告

    跳过开屏广告,体验流畅人生 开屏广告 是应用启动时显示的广告,一般右下角(或右下角)有倒计时跳过,不主动点击就会 等待3到5秒 后再进入App 自动跳过 是跳过应用的开屏广告的App 一图胜千文,来我 ...