´úÂë½á¹¹
- ÒýÈë¿âºÍÀà
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);