我要填寫的白色區域的色水性塗料的應用 所以請給我如何做這項工作的建議..如何在特定區域填充圖像顏色?
回答
我發現了洪水的解決方案填補了機器人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