我正在研究一個應用程序來檢測紙幣的「損壞量」。
該應用程序將評估用戶的輸入圖像,並確認他們是否有權替換備註。檢測大量的損壞錢
輸出結果爲:if 30% of lost of money object, can allow changing at the bank
。
我有想法,我們做的捕獲與金錢相機和損壞的背景是白色的話,在AS3可怎麼算白色的百分之一。如果不到30%,那麼銀行可以改變。
有關如何計算圖像中白色百分比的任何想法(計算)?謝謝。
- 編輯 -
我的代碼@ VC.One,可能你改正?謝謝。
import flash.media.Camera; import flash.media.Video; import flash.display.BitmapData; import flash.display.Bitmap; import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; var camMoney: Camera = Camera.getCamera(); camMoney.setQuality(0, 100); camMoney.setMode(480, 300, 30, true); var vidMoney: Video = new Video(480, 300) vidMoney.x = 0; vidMoney.y = 10; addChild(vidMoney); vidMoney.attachCamera(camMoney); var moneyBD: BitmapData = new BitmapData(vidMoney.width, vidMoney.height); var moneyBM: Bitmap = new Bitmap(moneyBD); moneyBM.x = 0; moneyBM.y = 376; addChild(moneyBM); var circle: Sprite = new Sprite(); circle.graphics.lineStyle(2, 0xFFFFFF); circle.graphics.beginFill(0x000000); circle.graphics.drawCircle(225, 340, 20); circle.graphics.endFill(); addChild(circle); circle.buttonMode = true; circle.addEventListener(MouseEvent.CLICK, capture); function capture(e: MouseEvent): void { moneyBD.draw(vidMoney); } var circleRect: Sprite = new Sprite(); circleRect.graphics.lineStyle(2, 0xFFFFFF); circleRect.graphics.beginFill(0xFF0000); circleRect.graphics.drawRoundRect(260, 320, 60, 40, 30); circleRect.graphics.endFill(); addChild(circleRect); circleRect.buttonMode = true; circleRect.addEventListener(MouseEvent.CLICK, analisa); function analisa(e: MouseEvent): void { var xi: int; var yi: int; var pixel: uint; var color: uint; var pointsWhite: Array = []; for (xi = 0; xi = 2) { var lengthOfWhiteSpace: int = pointGroup[pointGroup.length - 1].x - pointGroup[0].x; var t: TextField = new TextField(); t.x = pointGroup[0].x; t.y = pointGroup[0].y; addChild(t); } }
使用bitmapdata對象,這裏http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html – Jezzamon
謝謝@Jezzamon。我現在嘗試。 – Asrul
你以前是否使用過像素?在該Bitmpdata API鏈接中,您可能需要檢查「直方圖」,甚至只需使用「getPixel」(它告訴您從測試像素位置的顏色)。使用'For'循環掃描每個像素,並測試它是否與白色匹配('0xFFFFF'),如此邏輯:if white == myBMPdata.getPixel(i,j)then {so add +1 to totalWhitePixels};' 。掃描完成後,將您的**總像素**與**全白像素**進行比較,然後使用數學運算來計算百分比。 –