求解C#截取图片?进阶需求。

兔子家族-二哥 2019-08-15 04:52:51
图片中有一个绿色(颜色我可以写死)框,现在要截取绿色框内的图片 生成新图片并保存。

截取图片我倒是能做,这按绿色框来截取求解如何做啊?

PS:最终图片不要绿色框
...全文
278 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
outby 2019-08-27
  • 打赏
  • 举报
回复
有两种方法: 第一种:在前端全程用HTML5,将截取好的图片提交回服务器保存。 第二种:在前端拖动将获取图片的信息:图片大小,起始位置截取框大小,将这些信息提交回后端,让后端截取图片。 建议用第一种方法了。
tanta 2019-08-27
  • 打赏
  • 举报
回复
实际上是一个矩形检测,获取矩形坐标的问题。
有两个办法:1、类似贪心算法,扫描图像的rgb矩阵,首先找到一个点。建立一个链表,一直沿这个点向下向右搜索,看能不能回到原点,如果能回到,包围区域就是一个封闭矩形。如果回不到,找下一个点,继续搜索。直到找到矩形为止。
2、简单粗暴的算法。直接循环图像rgb矩阵,分别按行和列查找指定颜色点,并按行和列分别计算图像的点数。循环完毕后,看计算的结果,基本上最大的两行和两列所包围的矩形就是要求的矩形,如果不放心,可以判断下这个矩形是否是所求矩形。
吹风的兔子 2019-08-22
  • 打赏
  • 举报
回复
听说 很多 抠图特效 就是在 绿色背景布 上完成的。 看来楼主 的项目 很高大上 哦。
LinuxCard 2019-08-22
  • 打赏
  • 举报
回复
这个不是很简单的吗?逐点判断,比如,你的绿框4个像素,那么你判断框的左边界就是从第一行,第一列开始判断,读4个像素,判断颜色,如果不同,则,跳下一列,如果相同,且是绿色,那么下一行,相同的x坐标下,是否还是连续4个绿色,如果是,则基本上这就是左上角了 其他的角也是差不多的判断
极客诗人 2019-08-22
  • 打赏
  • 举报
回复
引用 11 楼 兔子家族-二哥 的回复:
有时候也悬,你因为灯光或者屏幕亮度等等等等 这太难调整了,只能说做个Demo吧,命中率还是比较高吧Demo的话
4点两线取中心点 我觉得比较靠谱 容错率较高 你可以参考参考
  • 打赏
  • 举报
回复
引用 10 楼 刘才鬼 的回复:
[quote=引用 9 楼 兔子家族-二哥 的回复:]

你这个和找最值4个点 没区别啊 但是你能确定你的X(min),Y(min) X(min),Y(max) X(max),Y(min) X(max),Y(max) 这4个点能命中?[/quote]

有时候也悬,你因为灯光或者屏幕亮度等等等等 这太难调整了,只能说做个Demo吧,命中率还是比较高吧Demo的话
threenewbee 2019-08-16
  • 打赏
  • 举报
回复
不要把绿色框画在图片上,而是另外存放,作为坐标传进来。
极客诗人 2019-08-16
  • 打赏
  • 举报
回复
引用 9 楼 兔子家族-二哥 的回复:
你这个和找最值4个点 没区别啊 但是你能确定你的X(min),Y(min) X(min),Y(max) X(max),Y(min) X(max),Y(max) 这4个点能命中?
  • 打赏
  • 举报
回复
引用 8 楼 刘才鬼 的回复:
判断是否为连续rgb 再裁?


不是连续的 根本没法做不是吗? 我把所有点都加到list里面,记录所有绿色点的坐标 , 取 X最小Y最小的 点为顶点,用 X最大Y最大减去X最小Y最小获得他的长度 ,没尝试过不过应该可以操作
极客诗人 2019-08-16
  • 打赏
  • 举报
回复
判断是否为连续rgb 再裁?
weixin_42694355 2019-08-16
  • 打赏
  • 举报
回复
https://bbs.csdn.net/topics/300208488 这里对图片处理写的很详细,看一下这几个例子,你应该就可以自己写出对应的方法
weixin_42694355 2019-08-16
  • 打赏
  • 举报
回复
https://bbs.csdn.net/topics/300208488
  • 打赏
  • 举报
回复
引用 3 楼 caozhy 的回复:
不要把绿色框画在图片上,而是另外存放,作为坐标传进来。

没办法的,他的坐标无法获取,因为该图片来自于视频拍摄,无法定位,只是会用绿色矩形圈出来,然后被视频抓成图片,然后要把该图片绿色圈的东西截取出来
hztltgg 2019-08-16
  • 打赏
  • 举报
回复
找点有个方法, 就是左上角 你扫描像素,按┌ 形式,就是右边延伸若干点,下面延伸若干点,累加像素的绿色分量,最大值对应的就是要找的点。
卧_槽 2019-08-15
  • 打赏
  • 举报
回复
绿框谁画的?画的时候直接截取不就完了吗
iAm_Ike 2019-08-15
  • 打赏
  • 举报
回复
C#可以获取到图片的像素信息的,逐行的去检查图片每个像素的RGB值,与你希望匹配的绿色的RGB值进行比对,为了防止某些个别像素干扰到绿色的识别,你可以判断一下是不是连续的绿色区域。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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