安卓开发04:OpenCV SDK下载及Android Java环境搭建

一、官方网站下载sdk:https://opencv.org
1、悬停Library后点击Releases

在这里插入图片描述

2、点击Android,打开网页后会自动下载

在这里插入图片描述
在这里插入图片描述

打开后得到以下内容

在这里插入图片描述

二、打开Android新建项目进行测试,依次点击File -> New -> New Project
  • 选择Empty Activity,点击Next
    在这里插入图片描述
  • Name栏输入OpenCVTest(命名自定义),点击Finish
    在这里插入图片描述
三、将OpenCV SDK导入项目
  • 将视图切换到Project,右键项目总目录,选择New -> Module
    然后选择Android Library,将模块命名为opencv-test(自定义命名)
    最后点击Finish
    在这里插入图片描述
  • 删除目录下所有内容
    在这里插入图片描述
  • 复制sdk目录下的内容到模块opencv-test
    在这里插入图片描述
  • 打开opencv-test目录下的build.gradle文件,删除图中kotlin那一行,然后点击Sync Now
    在这里插入图片描述
  • 显示BUILD SUCCESSFUL即可
    在这里插入图片描述
四、将opencv-test模块依赖到app模块中
  • 打开app模块下的build.gradle,在dependencies中加入以下内容,点击Sync Now
implementation 'com.rabbitmq:amqp-client:5.12.0'
implementation project(path: ':opencv-test')
  • app模块下的src/main/java的包目录下新建ActivityOpencvTestActivity
public class OpencvTestActivity extends Activity {
   
   

    ConnectionFactory factory;
    //定义线程池处理上帝视角引起的程序卡死问题
    private final ThreadPoolExecutor threadPoolExecutor = new
            ThreadPoolExecutor(3, 10, 1, TimeUnit.MILLISECONDS, new LinkedBlockingDeque<>());
    private boolean mQuit = false;//当为true的时候退出画图线程
    private boolean closeCompleteFlag = false;//当为true的时候表示通道和连接都关闭
    //播放视频页面(前、后、左、右)
    private SurfaceHolder surfaceHolder;
    private static final String TAG = "opencv启动日志";
    //消费rabbitmq数据的线程
    Runnable basicConsumeRunnable;
    volatile String picture;
    //画图的runnable
    Runnable drawRunnable;
    //全局定义各视角连接和通道,便于退出Activity后关闭
    Connection connection;
    Channel channel;
    //关闭通道和连接的runnable
    Runnable closeRunnable;
    private final String TAG_THREAD = "线程池";
    private static final String TAG_RABBITMQ = "RabbitMQ";

    @Override
    public void onCreate(Bundle savedInstanceState) {
   
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_opencv);
        //初始化opencv相关变量
        initOpencv();
        playVideo();
    }

    private void initOpencv() {
   
   
        SurfaceView mySurfaceView = findViewById(R.id.surfaceViewTest);
        surfaceHolder = mySurfaceView.getHolder();
        setupConnectionFactory();
    }

    //上帝视角相关函数以及线程的开启和关闭 Start
    @SuppressLint("HandlerLeak")
    private void playVideo() {
   
   
        //用于从线程中获取数据,更新ui
        Handler incomingMessageHandler = new Handler() {
   
   
            @Override
            public void handleMessage(Message msg) {
   
   
                picture = msg.getData().getString("msg");
            }
        };
        //视频号
        basicConsumeRunnable = getBasicConsumeRunnable(incomingMessageHandler);
        threadPoolExecutor.execute(basicConsumeRunnable);
        surfaceHolder.addCallback(new SurfaceHolder
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值