用opencv如何在一幅彩色图像上截取出一块不规则的区域?

mhiah123452007 2015-06-12 09:28:24
例如我有一幅彩色图像,图像上元素很多,有花,有鸟,有树等等。
但我现在只想截取鸟的那一块区域,可以通过什么样的算法获取这样一个不规则图形?



(假设我现在已经获取了鸟的边缘点的坐标)

跪求大神们帮忙!!
...全文
1391 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shangshan_longmao 2018-12-10
  • 打赏
  • 举报
回复
可以直接用把二值化的图你要的部分换成1,其余换成0,,再和原图做乘运算就OK了。
shiter 2015-07-10
  • 打赏
  • 举报
回复
你都有二值图像了,跟原来图像做与操作不是就直接得到分割出来的东西了么
lengwuqin 2015-07-09
  • 打赏
  • 举报
回复
难道漫水填充法不行吗?
shiter 2015-06-15
  • 打赏
  • 举报
回复
可以用交互式的分割算法啊,opencv里面不少呢,其中实现了grabcut
mhiah123452007 2015-06-15
  • 打赏
  • 举报
回复
引用 6 楼 lx624909677 的回复:
[quote=引用 4 楼 mhiah123452007 的回复:] [quote=引用 3 楼 lx624909677 的回复:] 如果你现在已经知道了轮廓边缘的话,那两者其实是一样的,不都是一些点的集合组成的一个区域吗?截取的关键其实就是知道要截取轮廓的坐标集呀
恩 确实 我看那个程序里面知道轮廓后,用的是cvcopy()这个函数,但是因为我的轮廓图是二值图,而分割的却是彩色图,通道数不一样,cvcopy()这个函数就用不了。。这个有什么办法吗?[/quote] 通道数不一样这个问题很好解决啊,opencv转二值图很容易你先看看opencv的基础使用[/quote] 好吧 我确实基础不扎实。。被赶鸭子上架了。。我再看看。。多谢大神了
mhiah123452007 2015-06-15
  • 打赏
  • 举报
回复
引用 6 楼 lx624909677 的回复:
[quote=引用 4 楼 mhiah123452007 的回复:] [quote=引用 3 楼 lx624909677 的回复:] 如果你现在已经知道了轮廓边缘的话,那两者其实是一样的,不都是一些点的集合组成的一个区域吗?截取的关键其实就是知道要截取轮廓的坐标集呀
恩 确实 我看那个程序里面知道轮廓后,用的是cvcopy()这个函数,但是因为我的轮廓图是二值图,而分割的却是彩色图,通道数不一样,cvcopy()这个函数就用不了。。这个有什么办法吗?[/quote] 通道数不一样这个问题很好解决啊,opencv转二值图很容易你先看看opencv的基础使用[/quote] opencv转二值图是很容易。。但是我想的是二值图转为三通道。。因为最终目的是实现彩色图的截取,而不是二值图。。
mhiah123452007 2015-06-15
  • 打赏
  • 举报
回复
引用 9 楼 wangyaninglm 的回复:
可以用交互式的分割算法啊,opencv里面不少呢,其中实现了grabcut
额 可以说的详细一点吗 多谢多谢
lx624909677 2015-06-12
  • 打赏
  • 举报
回复
如果你现在已经知道了轮廓边缘的话,那两者其实是一样的,不都是一些点的集合组成的一个区域吗?截取的关键其实就是知道要截取轮廓的坐标集呀
mhiah123452007 2015-06-12
  • 打赏
  • 举报
回复
引用 1 楼 lx624909677 的回复:
OpenCV截取图片中任意区域
额 前辈你好。这个链接我以前看过,它里面所说的不规则图形是靠人为手画出来的。 我想知道的是,能不能在已知1)物体边缘点坐标2)或者物体轮廓二值图 的情况下,将彩色图的对应物体单独截取出来? 请前辈指点
lx624909677 2015-06-12
  • 打赏
  • 举报
回复
lx624909677 2015-06-12
  • 打赏
  • 举报
回复
引用 4 楼 mhiah123452007 的回复:
[quote=引用 3 楼 lx624909677 的回复:] 如果你现在已经知道了轮廓边缘的话,那两者其实是一样的,不都是一些点的集合组成的一个区域吗?截取的关键其实就是知道要截取轮廓的坐标集呀
恩 确实 我看那个程序里面知道轮廓后,用的是cvcopy()这个函数,但是因为我的轮廓图是二值图,而分割的却是彩色图,通道数不一样,cvcopy()这个函数就用不了。。这个有什么办法吗?[/quote] 通道数不一样这个问题很好解决啊,opencv转二值图很容易你先看看opencv的基础使用
赵4老师 2015-06-12
  • 打赏
  • 举报
回复
建议楼主先编译链接调试OpenCV自带的相关例子代码。
mhiah123452007 2015-06-12
  • 打赏
  • 举报
回复
引用 3 楼 lx624909677 的回复:
如果你现在已经知道了轮廓边缘的话,那两者其实是一样的,不都是一些点的集合组成的一个区域吗?截取的关键其实就是知道要截取轮廓的坐标集呀
恩 确实 我看那个程序里面知道轮廓后,用的是cvcopy()这个函数,但是因为我的轮廓图是二值图,而分割的却是彩色图,通道数不一样,cvcopy()这个函数就用不了。。这个有什么办法吗?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧