我要填写的白色区域的色水性涂料的应用 所以请给我如何做这项工作的建议..如何在特定区域填充图像颜色?
回答
我发现了洪水的解决方案填补了机器人algoritham
private void FloodFill(Bitmap bmp, Point pt, int targetColor, int replacementColor){
Queue<Point> q = new LinkedList<Point>();
q.add(pt);
while (q.size() > 0) {
Point n = q.poll();
if (bmp.getPixel(n.x, n.y) != targetColor)
continue;
Point w = n, e = new Point(n.x + 1, n.y);
while ((w.x > 0) && (bmp.getPixel(w.x, w.y) == targetColor)) {
bmp.setPixel(w.x, w.y, replacementColor);
if ((w.y > 0) && (bmp.getPixel(w.x, w.y - 1) == targetColor))
q.add(new Point(w.x, w.y - 1));
if ((w.y < bmp.getHeight() - 1)
&& (bmp.getPixel(w.x, w.y + 1) == targetColor))
q.add(new Point(w.x, w.y + 1));
w.x--;
}
while ((e.x < bmp.getWidth() - 1)
&& (bmp.getPixel(e.x, e.y) == targetColor)) {
bmp.setPixel(e.x, e.y, replacementColor);
if ((e.y > 0) && (bmp.getPixel(e.x, e.y - 1) == targetColor))
q.add(new Point(e.x, e.y - 1));
if ((e.y < bmp.getHeight() - 1)
&& (bmp.getPixel(e.x, e.y + 1) == targetColor))
q.add(new Point(e.x, e.y + 1));
e.x++;
}
}}
洪水填充:与相同尺寸分别
请参阅各颜色的部分这个FloodFill
不错的一个但如果我只是将这个算法添加到我的Android应用程序,如果我调用函数FloodFill(具有相应的属性),那么它会工作吗?在这个函数中我应该给作为属性Point? – 2012-03-09 05:30:14
感谢@Hardik,它真的是一个很好的书面算法。但对于Android手机来说,它似乎非常缓慢。你知道任何其他方式填补洪水? – 2012-08-11 06:57:08
这个链接是如此之快:http://stackoverflow.com/a/17426163/401403 – Arash 2014-01-26 17:37:58
下面是使用Python和OpenCV(应提供一个快速的应用程序在Android上,如果你足够努力):
"""Flood fills with random color on click. Press `q' to exit."""
import cv
import sys
import random
TOL = 10
TOL_BGR = (TOL, TOL, TOL, 0)
def click(event,x,y,flags,im):
if event == cv.CV_EVENT_LBUTTONDOWN:
b,g,r = [ random.random() * 255 for i in range(3) ]
cv.FloodFill(im, (x,y), (b,g,r,0), TOL_BGR, TOL_BGR)
im = cv.LoadImage(sys.argv[1], cv.CV_LOAD_IMAGE_COLOR)
cv.NamedWindow(__file__, 1)
cv.SetMouseCallback(__file__, click, im)
while True:
cv.ShowImage(__file__, im)
key = cv.WaitKey(33)
if chr(key & 0xff) == 'q':
break
cv.SaveImage('floodfill.png', im)
每当用户点击图像,使用点击位置作为种子应用洪水填充。颜色是随机挑选的。您可以通过修改TOL(或TOL_BGR)的值来更改公差。这里有一对夫妇的点击后的结果:
的一般算法是一样的,不管你用什么样的技术。
可否请您发送源代码,因为我无法理解这部分 – dineshprasanna 2012-10-23 01:54:44
不,我不会给你发邮件给codez。无论如何,源代码都在我的答案中。如果你什么都不懂,那么请阅读相关功能的文档 - 它随时可用。 – misha 2012-10-23 10:07:56
好的没问题,谢谢你的回复我会尝试 – dineshprasanna 2012-10-23 11:34:02
1)有分裂图像因为实际图像和其他部分是透明的。 2)在绘图文件夹中有不同颜色的每个部分绘制完整的图像 - 这只是参考图像。
3)在帧布局添加所有分裂图像和设置了所有分割无形最初和设置为实际图像仅
4)热代码从UR参考图像(步骤2)分割为每个颜色可见例如handSplitImageColor = green;
4)设置框架布局的侦听器找出x和y位置,并将x和y位置传递给您的参考图像(步骤2),并找出该特定位置的颜色并使其与步骤4匹配并填充该图像中的特定内容,并将该分割图像的可见性设置为真。所以只有那部分会被颜色填充,因为其他部分是透明的。
这些是我用于我的一个相同类型的问题的步骤。
但我不认为这是更好的解决方案,但它适用于我。
- 1. 如何在特定区域填充图像颜色?
- 2. 用颜色填充特定区域
- 3. 如何填充R中某些特定区域的颜色?
- 4. 如何使用特定颜色填充区域
- 5. IoS Cocoa给定颜色填充区域
- 6. 用AndEngine中的颜色填充精灵内的特定区域
- 7. 使用图像填充画布区域而不是颜色
- 8. 如何用颜色填充图形区域
- 9. 用颜色填充随机区域
- 10. 用颜色填充修剪区域
- 11. 如何填充颜色完全像这个图像的颜色?
- 12. 为区域构建复杂的图像地图(颜色和图像填充)
- 13. Bash:在图像的特定部分填充颜色
- 14. 核心绘图填充坐标和颜色之间的特定区域
- 15. 在UIView上层填充颜色选定区域
- 16. 如何在填充图中获得深色填充颜色?
- 17. 的图像填充形状与特定颜色的OpenCV
- 18. 用黑色填充区域
- 19. 如何用C#Winform中的颜色填充曲面区域?
- 20. 如何向隐藏溢出的空白区域填充颜色?
- 21. 填写地图的区域用颜色
- 22. 如何在iOS上的图像中找到某个特定颜色的区域?
- 23. 生成缩略图并用颜色填充空白区域
- 24. d3.js用不同颜色填充图表区域
- 25. 使用颜色填充自定义区域
- 26. 用特定颜色填充路径
- 27. android用颜色填充图像
- 28. 控制svg图像填充颜色
- 29. 图像的填充(颜色)部分
- 30. 掩盖图像并填充颜色
看看经典的洪水填充算法:http://en.wikipedia.org/wiki/Flood_fill – Jave 2012-01-10 09:46:15
嗨, 这里是[链接] [1]获取图像的要点。仅指图像的实际部分并消除透明部分。但我不能限制这个区域。 [1]:http://brownandroidattack.blogspot.com/2010/03/image-transparency-aka-absurd.html – 2012-01-10 09:52:17
感谢您使用什么工具floodfill alogrithm – 2012-01-10 11:35:54