如何对图像的轮廓进行曲线拟合 20C

如题,由于图像轮廓具有大量的数据点,我是用的opencv的findcontours提取的数据点,但是我不知道它的数据点的顺序,那该怎么进行曲线拟合呢?

qq_41449268
qq_41449268 您好,您解决了吗?现在我跟您遇到了一样的问题,希望您不吝赐教
2 个月之前 回复

2个回答

我觉得如果要是拟合成直线应该还比较容易实现吧 先用击中击不中算法找到角点然后 把这些角点用直线连接起来 你可以试试行不行 要是拟合成曲线 我觉得大概也需要先找到角点吧 然后检测到连接每两个角点之间的小曲线 然后把他们的曲率半径什么的按权值加一起 有没有希望成功?可以试试 我做过先用hough变换检测直线然后拟合在一起的算法 曲线没试过 我感觉可能能行

weixin_40623627
青灯黄卷纯音乐_ 我是新手,我有三个问题。 第一,你说的这个获取角点的算法对数据点的顺序有要求么?现在我就是想不明白findcontours的顺序是怎么样的,我看的曲线拟合算法是需要数据点的顺序的。 第二,提取完角点之后,这个角点的数据点有没有顺序呢? 第三,有什么不要求数据点顺序的曲线拟合算法么?
一年多之前 回复

我是新手,我有三个问题。
第一,你说的这个获取角点的算法对数据点的顺序有要求么?现在我就是想不明白findcontours的顺序是怎么样的,我看的曲线拟合算法是需要数据点的顺序的。
第二,提取完角点之后,这个角点的数据点有没有顺序呢?
第三,有什么不要求数据点顺序的曲线拟合算法么?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
新手上路:如何进行曲线拟合~
现有点数组。想对曲线进行拟合,不知道哪位有源代码,多谢了!rn问题:1、能否进行拟合rn 2、能否通过这种方法拟合的曲线得到未知点!
如何运用Origin进行曲线拟合
教程链接:https://jingyan.baidu.com/article/00a07f381c0bff82d028dc17.html 操作步骤: 0.选中数据,点击图中箭头所指图标,生成散点图。 注意:一定一定一定要先选中数据,才能生成图哦! 1.选中散点图中的点,点击工具栏Analysis——Fitting——Nonlinear Curve Fit——Open Dialog,打开曲线拟合对话...
对图像进行直方图均衡
可以对图像进行直方图均衡化,可以更好的学习
对图像进行分块
import cv2 import numpy as np img = cv2.imread("C:/Users/PC/Desktop/program/skin/Images/chendingxin3.jpg") #低反光 cv2.imshow('image',img) # =============================================================...
对图像进行霍夫曼编码
利用C语言来实现对图像的霍夫曼编码 已测试可执行
对图像进行轮廓提取
对图像进行轮廓提取,只要轮廓
对图像进行直方图规定化
对图像进行直方图规定化,很不错的代码,希望对大家有帮助
对图像进行边缘检测
边缘检测实际上就是找出物体的轮廓,很明显,在物体的轮廓处灰度值变化肯定比背景和物体连续处的灰度值变化大,我们主要就依据这个进行边缘检测。边缘检测的方法也很多,本篇博文咱们利用图像在水平和垂直方向上的差分运算进行图像的边缘检测!原理很简单,所以代码很简单,关键是明白轮廓处灰度差值大,而非轮郭处灰度值差值很小 更多内容参见博文https://blog.csdn.net/lehuoziyuan/art...
利用Matlab对采样数据进行曲线拟合
我们在做数据处理或者采集的时候难免会遇到实际值和采样结果之间存在误差的情况,这就需要我们通过对实验结果进行曲线拟合,从而得到较为准确的结果。 这几天在做变换器的时候就遇到了处理器采样结果和实际输入电压不匹配,通过分析初步分为是采集的电压经过调理电路以后,调理前和调理后不完全是按照电路比例来计算的,从而导致出现了检测结果的误差。 通过测试发现二者之间的 差距不是一个固定的数值,所以采用曲线拟合的方式...
图像中寻找图像的轮廓
该程序是很好的一个关于图像轮廓的提取算法,能够直接运行,对学图像处理的同学有好处
对A、B两组数据进行曲线拟合
 X = load('a.txt');   Y = load('b.txt');   a =X(:,1);  b =Y(:,1);  c=1;  p=polyfit(a,b,c);  y=polyval(p,a);  plot(a,y,'-',a,b,'.');
对目标轮廓进行傅立叶分析
function z=frdescp(s) %程序功能:将轮廓数据进行傅立叶分解,得到系数 %输入变量:s 目标轮廓坐标序列 %输出变量:z 傅立叶系数
将轮廓显示为轮廓图像
function B=bound2im(b,M,N,x0,y0) %将轮廓显示为轮廓图像 %程序功能描述:将链码序列显示为轮廓图像,由此得到轮廓象素坐标 %输入变量:b链码,M,N图像高宽,x0,y0链码起始位置坐标 %输出变量:轮廓象素的坐标序列
求图像的轮廓
输入一幅图像 contour可以把图的轮廓的坐标求出来
图像边缘检测,轮廓拟合
在边缘检测中总会提取出不连续点,或伪轮廓。在这种情况下需要拟合出目标的轮廓,这样可以找到轮廓的数学表达式为后续的特征选取打下基础。博主用coins图像为例,用椭圆方程进行拟合,做出如下实验。1、原图二值化2、边缘检测(sobel算子)3、填补孔洞4、标记连通域5、找到每个连通域坐标6、用每个连通域坐标拟合出椭圆方程7、在二值图像中画出每个椭圆函数%%图像边缘检测和拟合轮廓 clc clear cl...
opencv 找图像的轮廓
配置好opencv后,可以直接复制粘贴运行,经测试通过。找轮廓的效果很好。
生成代码的轮廓图像
您每天都在阅读代码,代码应针对此进行优化。 此工具可帮助您可视化项目中代码的外观,并可能成为更好地构建文件的触发器。
图像直线、轮廓、
https://www.cnblogs.com/ronny/p/opencv_road_8.html
【opencv3---图像的轮廓和矩】
模块笔记(不能直接运行,仅供个人copy使用): #include<opencv2\opencv.hpp> #include <iostream> #include<vector> using namespace cv; using namespace std; bool PointCmpy(cv::Point const& a,cv::P...
图像的内外轮廓的提取
jpg转bmp 以及内外轮廓的提取和坐标的纪录,编程环境vs2010
图像转轮廓
将图像转轮廓,图像打印后可以用于幼儿园儿童涂画添色。
matlab获取图像的轮廓
输入一个二值图像,输出图像的轮廓。function [bmap] = seg2bmap(seg,width,height) % [bmap] = seg2bmap(seg) % % From a segmentation, compute a binary boundary map with 1 pixel wide % boundaries. The boundary pixels are of
如何对图像进行自适应(动态)分块
目的是为了在分块内运用Otsu这种全局的阈值选取方法并进行二值化rn图像分块最好能满足同时存在背景和目标且易于全局阈值方法处理的分块rn有什么好的方法来动态确定图像分块吗? rnrn
如何对图像进行像素级的操作?
我想放大一个32x32的gif图像,首先要求显示一个32x32个网格的面板,每个网格代表一个像素,怎么让这个图像正好放到这个面板上?rn然后对每个网格的操作就代表对图像的操作,我如何获得该图像的像素数组?
如何对图像进行对数转换?急!
我有一幅图像要进行去云处理,第一个步骤是做对数转换,初学VB,不知如何编程,望高手指点。
如何对图像进行叠加平均啊?
对了,图像是TIF格式的。
AGG图形库如何对图像进行缩放
RT我想用AGG图形库对图像进行缩放,代码如何写呢?
如何对两幅bmp图像进行异或运算?
我现在已经得到两幅bmp图像,想对里面每一个像素点进行异或操作,去掉其中的相同部分,保留下不同的部分到ChangedBitmap里,不过现在得到的是全黑的图片,代码如下,请各位高手赐教!rnrn LPVOID m_newlpvBits = NULL, m_oldlpvBits = NULL;rnrn char *m_newcbBuffer = NULL, *m_oldcbBuffer = NULL; rn HDC hDC, hDC_old, newhdc = NULL, oldhdc = NULL; rn BITMAP bb, bb1;rn BITMAPINFO b, b1; rn HANDLE hp, fh=NULL; rn DWORD dwX, dwY; rnrnrnrn //*************** rn dwX=GetSystemMetrics(SM_CXSCREEN); rn dwY=GetSystemMetrics(SM_CYSCREEN); rn rnrn hDC=::GetDC(NULL); rn hDC_old = ::GetDC(NULL);rn newhdc=CreateCompatibleDC(hDC); rn oldhdc=CreateCompatibleDC(hDC_old); rnrn bb.bmWidth=dwX; rn bb.bmHeight =dwY; rn bb.bmPlanes = 1; rn bb.bmWidthBytes=bb.bmWidth*3; rn bb.bmBitsPixel=3; rn bb.bmType=0; rnrn b.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); rn b.bmiHeader.biWidth=dwX; rn b.bmiHeader.biHeight =dwY; rn b.bmiHeader.biPlanes = 1; rn b.bmiHeader.biBitCount =24; rn b.bmiHeader.biCompression = BI_RGB; rn b.bmiHeader.biSizeImage = 0; rn b.bmiHeader.biXPelsPerMeter = 0; rn b.bmiHeader.biYPelsPerMeter = 0; rn b.bmiHeader.biClrUsed = 0; rn b.bmiHeader.biClrImportant = 0; rnrn b.bmiColors[0].rgbBlue=8; rn b.bmiColors[0].rgbGreen=8; rn b.bmiColors[0].rgbRed=8; rn b.bmiColors[0].rgbReserved=0; rnrn hp=GetProcessHeap(); rn rn bb1 =bb;rn b1 = b;rnrn m_newcbBuffer=(char *)HeapAlloc(hp, HEAP_ZERO_MEMORY, bb.bmHeight*bb.bmWidth*4); rn m_oldcbBuffer=(char *)HeapAlloc(hp, HEAP_ZERO_MEMORY, bb1.bmHeight*bb1.bmWidth*4);rnrn ChangedBitmap=CreateCompatibleBitmap(newhdc, bb.bmWidth, bb.bmHeight);rn HBITMAP hOldBitmap;rn hOldBitmap=(HBITMAP)SelectObject(newhdc, ChangedBitmap);rnrn GetDIBits(newhdc, newBitmap, 0, dwY, m_newcbBuffer, &b, DIB_RGB_COLORS);rn GetDIBits(oldhdc, oldBitmap, 0, dwY, m_oldcbBuffer, &b1, DIB_RGB_COLORS);rnrn ::BitBlt(newhdc, 0, 0, bb.bmWidth, bb.bmHeight, oldhdc, 0, 0, SRCCOPY);rnrn ChangedBitmap=(HBITMAP)SelectObject(newhdc, hOldBitmap);rn char * ChangecbBuffer=(char *)HeapAlloc(hp, HEAP_ZERO_MEMORY, bb.bmHeight*bb.bmWidth*4); rn GetDIBits(newhdc, ChangedBitmap, 0, dwY, ChangecbBuffer, &b, DIB_RGB_COLORS);rn
如何对图像进行灰度处理?
某一目录下有若干彩色图片(JPG),如何将其转换成灰度的?rn解决立刻结帖
如何对BMP图像进行加密?谢谢
在开发软件过程需用到大量的BMP图片,现在是BMP文件存于目录中,一数据库存储BMP文件的路径,当需要显示BMP时在数据库中寻找BMP的路径然后放到PICTURE控件中显示,rnrn现在希望将BMP图片加密,用其它的看图软件打不开,而我的程序能够识别与加裁,正常执行请问有什么好的方法,谢谢!
如何对图像进行卷积操作
1、首先先了解下什么是卷积呢? 2、卷积操作:卷积核与原图对应位置相乘再求和;然后将所求和放在被卷积操作的图中心位置。 上图表示一个 8×8 的原图,每个方格代表一个像素点;其中一个包含 X 的方格是一个 5×5 的卷积核,核半径等于 5/2 = 2; 进行卷积操作后,生成图像为上图中包含 Y 的方格,可以看出是一个 4×4 的生成图; 通过比较观察可以发现,生成图比原图尺寸要小,为了保证生成...
如何对form1.canvas 上画的图像进行清空?
THANKS
OpenCV---如何对图像进行锐化(11)
附代码如下: import cv2 as cv import numpy as np def sharpe(): src = cv.imread("D:/matplotlib/0.jpg") cv.imshow("input",src) lap_5 = np.array([[0,-1,0],[-1,5,-1],[0,-1,0]]) lap_9 = np.arra...
如何对图像的色彩数进行转换
讲24位转成256色,有相对简单的方法吗?rnrn讲下原理就行了。以后还要把24位转成32位。rnrn另外怎么看一幅图的是真彩还是伪色彩?通过什么方法查看?rnrn
请教:如何对图像进行插值处理?
谢谢!
VB+matlab进行曲线拟合
VB+matlab进行曲线拟合,并 matlab 访问数据的代码
OpenCV进行多条曲线拟合
我有一幅经过边缘检测和轮廓处理的二值图像,轮廓坐标储存在contours里,现在想进行曲线拟合,这些轮廓分别属于两条不同的曲线,请问怎么同时把它们拟合出来?
opencv中如何对不平滑的矢量轮廓进行平滑
opencv中在将位图直接转换为矢量图后,放大后发现轮廓图还是会出现类似位图的模糊,现在想将矢量图进行平滑,使其变成一般矢量图的平滑线条,不知道opencv中有没有什么好方法?望大神解答[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif][/img]
最小二乘法进行曲线拟合 Python
最小二乘法进行曲线拟合 Python
matlab进行曲线拟合
在matlab 中多项式可以通过向量表示 eg:f(x)=4x^3-2x^2-8x+3求解 >>roots([4,-2,-8,3]) 曲线拟合,对离散数据的处理对2点到6点的温度数据进行分析 分别作出在1,2,3此多项式下的拟合结果分析 x = 2:6; y = [65 67 72 71 63]; morex = linspace(min(x),max(x)); # 创建线性...
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件