´úÂë½á¹¹
- ÒýÈë¿âºÍÀà
 
importPackage ºÍ importClass ÓÃÓÚµ¼ÈëOpenCVºÍAndroidÖÐÏà¹ØÀàºÍ°ü£¬ÕâÔÚʹÓÃÆäº¯ÊýʱÊDZØÐèµÄ¡£
- º¯Êý¶¨Òå
 
screenshotAndBinarize: ·â×°ÁË¶ÔÆÁÄ»½ØÍ¼½øÐжþÖµ»¯´¦ÀíµÄËùÓв½Öè¡£
- º¯Êý²ÎÊý
 
width: ½ØÍ¼µÄ¿í¶È¡£height: ½ØÍ¼µÄ¸ß¶È¡£quality: ½ØÍ¼µÄÖÊÁ¿¡£threshold1: ¶þÖµ»¯¹ý³ÌÖÐʹÓõÄãÐÖµ1¡£threshold2: ¶þÖµ»¯¹ý³ÌÖÐʹÓõÄãÐÖµ2¡£
´úÂë²½Öè
- ÆÁÄ»½ØÍ¼
 
var bitmap = screen.screenShot(width, height, quality).getBitmap();
- ʹÓøø¶¨µÄ¿í¶È¡¢¸ß¶ÈºÍÖÊÁ¿²ÎÊý½øÐÐÆÁÄ»½ØÍ¼£¬½á¹ûÊÇÒ»¸ö 
Bitmap ¶ÔÏó¡£ 
- Bitmap ת Mat
 
var mat = new Mat();
Utils.bitmapToMat(bitmap, mat);
Utils.bitmapToMat ½« Bitmap ×ª»»Îª OpenCV µÄ Mat ¶ÔÏ󣬱ãÓÚºóÐøµÄͼÏñ´¦Àí²Ù×÷¡£
- ¶þÖµ»¯´¦Àí
 
var binaryMat = new Mat();
Imgproc.threshold(mat, binaryMat, threshold1, threshold2, Imgproc.THRESH_BINARY);
printl(binaryMat);
- ³õʼ»¯Ò»¸öеĠ
Mat ¶ÔÏó binaryMat ÓÃÓÚ´æ´¢´¦ÀíºóµÄͼÏñ¡£ - ʹÓà
Imgproc.threshold ·½·¨¶ÔͼÏñ½øÐжþÖµ»¯´¦Àí¡£ threshold1 ºÍ threshold2 ÊÇÓÃÓÚ¶þÖµ»¯µÄãÐÖµ¡£Imgproc.THRESH_BINARY ±íʾ²ÉÓöþÖµ»¯´¦Àí·½·¨¡£
- Mat ת Bitmap
 
var binaryBitmap = Bitmap.createBitmap(binaryMat.cols(), binaryMat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(binaryMat, binaryBitmap);
printl(binaryBitmap);
- ´´½¨Ò»¸öеĠ
Bitmap ¶ÔÏó£¬ÓÃÓÚ´æ´¢¶þÖµ»¯ºóµÄͼÏñ¡£ - ½« 
binaryMat ×ª»»»Ø Bitmap¡£ 
- ·µ»ØÖµ
 
return binaryBitmap;
- º¯ÊýµÄ·µ»ØÖµÊÇ´¦ÀíºóµÄ 
Bitmap ¶ÔÏó¡£ 
µ÷ÓÃʾÀý
var resultBitmap = screenshotAndBinarize(640, 960, 100, 50, 150);
- ʹÓÃÌØ¶¨²ÎÊýµ÷Óøú¯Êý£¬»ñÈ¡¶þÖµ»¯ºóµÄͼÏñ¡£
 
// ÒýÈë Android ºÍ OpenCV µÄÀà
importPackage(org.opencv.core);
importPackage(org.opencv.imgproc);
importPackage(org.opencv.android);
importClass(android.graphics.Bitmap);
function screenshotAndBinarize(width, height, quality, threshold1, threshold2) {
// ½øÐÐÆÁÄ»½ØÍ¼
var bitmap = screen.screenShot(width, height, quality).getBitmap();
// ½« Bitmap ת»»Îª OpenCV µÄ Mat
var mat = new Mat();
Utils.bitmapToMat(bitmap, mat);
// ½øÐжþÖµ»¯´¦Àí
var binaryMat = new Mat();
Imgproc.threshold(mat, binaryMat, threshold1, threshold2, Imgproc.THRESH_BINARY);
printl(binaryMat);
// ½«¶þÖµ»¯ºóµÄ Mat ת»»»Ø Bitmap
var binaryBitmap = Bitmap.createBitmap(binaryMat.cols(), binaryMat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(binaryMat, binaryBitmap);
printl(binaryBitmap);
return binaryBitmap;
}
// µ÷Ó÷â×°µÄº¯Êý
var resultBitmap = screenshotAndBinarize(640, 960, 100, 50, 150);