mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 08:13:04 +04:00
Merge branch 4.x
This commit is contained in:
@@ -7,6 +7,7 @@ plugins {
|
||||
android {
|
||||
namespace 'org.opencv'
|
||||
compileSdk ${COMPILE_SDK}
|
||||
ndkVersion "${NDK_VERSION}"
|
||||
|
||||
defaultConfig {
|
||||
minSdk ${MIN_SDK}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
plugins {
|
||||
id 'com.android.library' version '7.3.0' apply false
|
||||
id 'com.android.library' version '8.6.0' apply false
|
||||
id 'org.jetbrains.kotlin.android' version '1.8.20' apply false
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#Mon Jul 10 11:57:38 SGT 2023
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -47,6 +47,14 @@ def get_opencv_version(opencv_sdk_path):
|
||||
revision = re.search(r'^#define\W+CV_VERSION_REVISION\W+(\d+)$', data, re.MULTILINE).group(1)
|
||||
return "%(major)s.%(minor)s.%(revision)s" % locals()
|
||||
|
||||
def get_ndk_version(ndk_path):
|
||||
props_path = path.join(ndk_path, "source.properties")
|
||||
with open(props_path, "rt") as f:
|
||||
data = f.read()
|
||||
version = re.search(r'Pkg\.Revision\W+=\W+(\d+\.\d+\.\d+)', data).group(1)
|
||||
return version.strip()
|
||||
|
||||
|
||||
def get_compiled_aar_path(path1, path2):
|
||||
if path.exists(path1):
|
||||
return path1
|
||||
@@ -70,6 +78,8 @@ def cleanup(paths_to_remove):
|
||||
|
||||
def main(args):
|
||||
opencv_version = get_opencv_version(args.opencv_sdk_path)
|
||||
ndk_version = get_ndk_version(args.ndk_location)
|
||||
print("Detected ndk_version:", ndk_version)
|
||||
abis = os.listdir(path.join(args.opencv_sdk_path, "sdk/native/libs"))
|
||||
lib_name = "opencv_java" + opencv_version.split(".")[0]
|
||||
final_aar_path = FINAL_AAR_PATH_TEMPLATE.replace("<OPENCV_VERSION>", opencv_version)
|
||||
@@ -90,6 +100,7 @@ def main(args):
|
||||
"LIB_TYPE": "c++_shared",
|
||||
"PACKAGE_NAME": MAVEN_PACKAGE_NAME,
|
||||
"OPENCV_VERSION": opencv_version,
|
||||
"NDK_VERSION": ndk_version,
|
||||
"COMPILE_SDK": args.android_compile_sdk,
|
||||
"MIN_SDK": args.android_min_sdk,
|
||||
"TARGET_SDK": args.android_target_sdk,
|
||||
@@ -170,10 +181,10 @@ def main(args):
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Builds AAR with Java and shared C++ libs from OpenCV SDK")
|
||||
parser.add_argument('opencv_sdk_path')
|
||||
parser.add_argument('--android_compile_sdk', default="31")
|
||||
parser.add_argument('--android_compile_sdk', default="34")
|
||||
parser.add_argument('--android_min_sdk', default="21")
|
||||
parser.add_argument('--android_target_sdk', default="31")
|
||||
parser.add_argument('--java_version', default="1_8")
|
||||
parser.add_argument('--android_target_sdk', default="34")
|
||||
parser.add_argument('--java_version', default="17")
|
||||
parser.add_argument('--ndk_location', default="")
|
||||
parser.add_argument('--cmake_location', default="")
|
||||
parser.add_argument('--offline', action="store_true", help="Force Gradle use offline mode")
|
||||
|
||||
@@ -285,7 +285,10 @@ class Builder:
|
||||
cmd.append(self.opencvdir)
|
||||
execute(cmd)
|
||||
# full parallelism for C++ compilation tasks
|
||||
execute([self.ninja_path, "opencv_modules"])
|
||||
build_targets = ["opencv_modules"]
|
||||
if do_install:
|
||||
build_targets.append("opencv_tests")
|
||||
execute([self.ninja_path, *build_targets])
|
||||
# limit parallelism for building samples (avoid huge memory consumption)
|
||||
if self.no_samples_build:
|
||||
execute([self.ninja_path, "install" if (self.debug_info or self.debug) else "install/strip"])
|
||||
@@ -300,6 +303,14 @@ class Builder:
|
||||
classpaths.append(os.path.join(dir, f))
|
||||
srcdir = os.path.join(self.resultdest, 'sdk', 'java', 'src')
|
||||
dstdir = self.docdest
|
||||
# HACK: create stubs for auto-generated files to satisfy imports
|
||||
with open(os.path.join(srcdir, 'org', 'opencv', 'BuildConfig.java'), 'wt') as fs:
|
||||
fs.write("package org.opencv;\n public class BuildConfig {\n}")
|
||||
fs.close()
|
||||
with open(os.path.join(srcdir, 'org', 'opencv', 'R.java'), 'wt') as fs:
|
||||
fs.write("package org.opencv;\n public class R {\n}")
|
||||
fs.close()
|
||||
|
||||
# synchronize with modules/java/jar/build.xml.in
|
||||
shutil.copy2(os.path.join(SCRIPT_DIR, '../../doc/mymath.js'), dstdir)
|
||||
cmd = [
|
||||
@@ -327,9 +338,12 @@ class Builder:
|
||||
'-bottom', 'Generated on %s / OpenCV %s' % (time.strftime("%Y-%m-%d %H:%M:%S"), self.opencv_version),
|
||||
"-d", dstdir,
|
||||
"-classpath", ":".join(classpaths),
|
||||
'-subpackages', 'org.opencv',
|
||||
'-subpackages', 'org.opencv'
|
||||
]
|
||||
execute(cmd)
|
||||
# HACK: remove temporary files needed to satisfy javadoc imports
|
||||
os.remove(os.path.join(srcdir, 'org', 'opencv', 'BuildConfig.java'))
|
||||
os.remove(os.path.join(srcdir, 'org', 'opencv', 'R.java'))
|
||||
|
||||
def gather_results(self):
|
||||
# Copy all files
|
||||
|
||||
@@ -7,7 +7,7 @@ import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from build_java_shared_aar import cleanup, fill_template, get_compiled_aar_path, get_opencv_version
|
||||
from build_java_shared_aar import cleanup, fill_template, get_compiled_aar_path, get_opencv_version, get_ndk_version
|
||||
|
||||
|
||||
ANDROID_PROJECT_TEMPLATE_DIR = path.join(path.dirname(__file__), "aar-template")
|
||||
@@ -103,6 +103,8 @@ def convert_deps_list_to_prefab(linked_libs, opencv_libs, external_libs):
|
||||
|
||||
def main(args):
|
||||
opencv_version = get_opencv_version(args.opencv_sdk_path)
|
||||
ndk_version = get_ndk_version(args.ndk_location)
|
||||
print("Detected ndk_version:", ndk_version)
|
||||
abis = os.listdir(path.join(args.opencv_sdk_path, "sdk/native/libs"))
|
||||
final_aar_path = FINAL_AAR_PATH_TEMPLATE.replace("<OPENCV_VERSION>", opencv_version)
|
||||
sdk_dir = args.opencv_sdk_path
|
||||
@@ -121,6 +123,7 @@ def main(args):
|
||||
"LIB_TYPE": "c++_static",
|
||||
"PACKAGE_NAME": MAVEN_PACKAGE_NAME,
|
||||
"OPENCV_VERSION": opencv_version,
|
||||
"NDK_VERSION": ndk_version,
|
||||
"COMPILE_SDK": args.android_compile_sdk,
|
||||
"MIN_SDK": args.android_min_sdk,
|
||||
"TARGET_SDK": args.android_target_sdk,
|
||||
@@ -245,9 +248,9 @@ def main(args):
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Builds AAR with static C++ libs from OpenCV SDK")
|
||||
parser.add_argument('opencv_sdk_path')
|
||||
parser.add_argument('--android_compile_sdk', default="31")
|
||||
parser.add_argument('--android_compile_sdk', default="34")
|
||||
parser.add_argument('--android_min_sdk', default="21")
|
||||
parser.add_argument('--android_target_sdk', default="31")
|
||||
parser.add_argument('--android_target_sdk', default="34")
|
||||
parser.add_argument('--java_version', default="1_8")
|
||||
parser.add_argument('--ndk_location', default="")
|
||||
parser.add_argument('--cmake_location', default="")
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
ABIs = [
|
||||
ABI("2", "armeabi-v7a", None, 21, cmake_vars=dict(ANDROID_ABI='armeabi-v7a with NEON')),
|
||||
ABI("3", "arm64-v8a", None, 21, cmake_vars=dict(ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES='ON')),
|
||||
ABI("5", "x86_64", None, 21, cmake_vars=dict(ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES='ON')),
|
||||
ABI("4", "x86", None, 21),
|
||||
]
|
||||
@@ -16,84 +16,105 @@ core = {
|
||||
|
||||
imgproc = {
|
||||
'': [
|
||||
'Canny',
|
||||
'GaussianBlur',
|
||||
'Laplacian',
|
||||
'HoughLines',
|
||||
'HoughLinesP',
|
||||
'HoughCircles',
|
||||
'Scharr',
|
||||
'Sobel',
|
||||
'adaptiveThreshold',
|
||||
'applyColorMap',
|
||||
'approxPolyDP',
|
||||
'approxPolyN',
|
||||
'arcLength',
|
||||
'arrowedLine',
|
||||
'bilateralFilter',
|
||||
'blendLinear',
|
||||
'blur',
|
||||
'boundingRect',
|
||||
'boxFilter',
|
||||
'calcBackProject',
|
||||
'calcHist',
|
||||
'Canny',
|
||||
'circle',
|
||||
'clipLine',
|
||||
'compareHist',
|
||||
'connectedComponents',
|
||||
'connectedComponentsWithStats',
|
||||
'contourArea',
|
||||
'convertMaps',
|
||||
'convexHull',
|
||||
'convexityDefects',
|
||||
'cornerHarris',
|
||||
'cornerMinEigenVal',
|
||||
'createCLAHE',
|
||||
'createHanningWindow',
|
||||
'createLineSegmentDetector',
|
||||
'cvtColor',
|
||||
'demosaicing',
|
||||
'dilate',
|
||||
'distanceTransform',
|
||||
'distanceTransformWithLabels',
|
||||
'divSpectrums',
|
||||
'drawContours',
|
||||
'drawMarker',
|
||||
'ellipse',
|
||||
'ellipse2Poly',
|
||||
'equalizeHist',
|
||||
'erode',
|
||||
'fillConvexPoly',
|
||||
'fillPoly',
|
||||
'filter2D',
|
||||
'findContours',
|
||||
'findContoursLinkRuns',
|
||||
'fitEllipse',
|
||||
'fitEllipseAMS',
|
||||
'fitEllipseDirect',
|
||||
'fitLine',
|
||||
'floodFill',
|
||||
'GaussianBlur',
|
||||
'getAffineTransform',
|
||||
'getFontScaleFromHeight',
|
||||
'getPerspectiveTransform',
|
||||
'getRectSubPix',
|
||||
'getRotationMatrix2D',
|
||||
'getStructuringElement',
|
||||
'goodFeaturesToTrack',
|
||||
'grabCut',
|
||||
#'initUndistortRectifyMap', # 4.x: moved to calib3d
|
||||
'HoughLines',
|
||||
'HoughLinesP',
|
||||
'HoughCircles',
|
||||
'HuMoments',
|
||||
'integral',
|
||||
'integral2',
|
||||
'intersectConvexConvex',
|
||||
'invertAffineTransform',
|
||||
'isContourConvex',
|
||||
'Laplacian',
|
||||
'line',
|
||||
'matchShapes',
|
||||
'matchTemplate',
|
||||
'medianBlur',
|
||||
'minAreaRect',
|
||||
'minEnclosingCircle',
|
||||
'minEnclosingTriangle',
|
||||
'moments',
|
||||
'morphologyEx',
|
||||
'pointPolygonTest',
|
||||
'polylines',
|
||||
'preCornerDetect',
|
||||
'putText',
|
||||
'pyrDown',
|
||||
'pyrUp',
|
||||
'rectangle',
|
||||
'remap',
|
||||
'resize',
|
||||
'rotatedRectangleIntersection',
|
||||
'Scharr',
|
||||
'sepFilter2D',
|
||||
'Sobel',
|
||||
'spatialGradient',
|
||||
'sqrBoxFilter',
|
||||
'stackBlur',
|
||||
'threshold',
|
||||
#'undistort', # 4.x: moved to calib3d
|
||||
'warpAffine',
|
||||
'warpPerspective',
|
||||
'warpPolar',
|
||||
'watershed',
|
||||
'fillPoly',
|
||||
'fillConvexPoly',
|
||||
'polylines',
|
||||
],
|
||||
'CLAHE': ['apply', 'collectGarbage', 'getClipLimit', 'getTilesGridSize', 'setClipLimit', 'setTilesGridSize'],
|
||||
'segmentation_IntelligentScissorsMB': [
|
||||
@@ -166,6 +187,7 @@ photo = {'': ['createAlignMTB', 'createCalibrateDebevec', 'createCalibrateRobert
|
||||
'createMergeDebevec', 'createMergeMertens', 'createMergeRobertson', \
|
||||
'createTonemapDrago', 'createTonemapMantiuk', 'createTonemapReinhard', 'inpaint'],
|
||||
'CalibrateCRF': ['process'],
|
||||
'AlignExposures': ['process'],
|
||||
'AlignMTB' : ['calculateShift', 'shiftMat', 'computeBitmaps', 'getMaxBits', 'setMaxBits', \
|
||||
'getExcludeRange', 'setExcludeRange', 'getCut', 'setCut'],
|
||||
'CalibrateDebevec' : ['getLambda', 'setLambda', 'getSamples', 'setSamples', 'getRandom', 'setRandom'],
|
||||
@@ -207,6 +229,7 @@ calib = {
|
||||
'fisheye_initUndistortRectifyMap',
|
||||
'fisheye_projectPoints',
|
||||
],
|
||||
'UsacParams': ['UsacParams']
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user