android使用opencv實(shí)現(xiàn)指紋驗(yàn)證效果

接觸opencv有一段時(shí)間了,剛好公司最近有個(gè)指紋相關(guān)的功能,其中有個(gè)指紋特效晚上現(xiàn)成沒有很好定制型所以就用opencv試著寫了一個(gè)效果。

項(xiàng)目源碼:

https://github.com/woshiliyihang/touchZW

效果圖:

jason_g.gif

前期準(zhǔn)備

效果不是非常好但是修改定制簡(jiǎn)單,所需要準(zhǔn)備的有兩張圖片:
前景圖:


zhiwen.png

背景圖:


zhiwen_gr.png

一個(gè)是紅色前景,一個(gè)黑色背景,兩張圖片尺寸一樣大。

代碼實(shí)現(xiàn):

package com.jasonliyihang.zwdome;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;

import org.opencv.jason.DrawZW;

public class MainActivity extends AppCompatActivity {

    private DrawZW drawZW;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    @Override
    protected void onResume() {
        super.onResume();
        // 初始化opencv工具類
        DrawZW.onResume(this, new Runnable() {
            @Override
            public void run() {
                startAnim();
            }
        });
    }

    private void startAnim() {
        //R.mipmap.zhiwen 前景圖 R.mipmap.zhiwen_gr 背景圖
        drawZW = new DrawZW((ImageView) findViewById(R.id.img), R.mipmap.zhiwen, R.mipmap.zhiwen_gr);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                // x y r 分別代表這個(gè) 圓心 xy 點(diǎn)  和 半徑 r
                drawZW.logic(drawZW.getRgb().cols()/2,drawZW.getRgb().rows()/2, (int) (drawZW.getRgb().cols()*0.4f), 700);
            }
        }, 2001);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                drawZW.logic(drawZW.getRgb().cols()/3,drawZW.getRgb().rows()/3,drawZW.getRgb().cols()/3, 700);
            }
        }, 4001);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                drawZW.logic(drawZW.getRgb().cols()/2,drawZW.getRgb().rows()/4*3, (int) (drawZW.getRgb().cols()*0.7f), 700);
            }
        }, 6001);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                drawZW.logic(drawZW.getRgb().cols()/2,drawZW.getRgb().rows()/4,drawZW.getRgb().cols()*2, 700);
            }
        }, 8000);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                drawZW.free();//記得釋放內(nèi)存哦
            }
        }, 10000);
    }
}

主要說明注釋里面已經(jīng)寫了!
簡(jiǎn)單介紹原理:就是通過畫圓的方式模擬點(diǎn)擊效果,然后使用圖形處理達(dá)到效果。
不喜勿噴,如果這個(gè)對(duì)你有幫助記得點(diǎn)贊哦 !!!!!!!!!!!!!!!!!!!!!!!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容