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();
var mat = new Mat();
Utils.bitmapToMat(bitmap, mat);
var binaryMat = new Mat();
Imgproc.threshold(mat, binaryMat, threshold1, threshold2, Imgproc.THRESH_BINARY);
printl(binaryMat);
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);
´úÂë½á¹¹ÒýÈë¿âºÍÀà 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);
- ´´½¨Ò»¸ö
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);
- ʹÓÃÌض¨²ÎÊýµ÷Óøú¯Êý£¬»ñÈ¡¶þÖµ»¯ºóµÄͼÏñ¡£
|