欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

OpenCV4Android中怎么獲取卡號輪廓顯示

本篇文章為大家展示了OpenCV4Android中怎么獲取卡號輪廓顯示,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

我們提供的服務有:網(wǎng)站制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、高邑ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的高邑網(wǎng)站制作公司

我們在OpenCVCaremaActivity中的ImgView里面加入拍照事件

首先加一個boolean的變量,這樣在按鈕的時候?qū)崟r動態(tài)顯示先不進行處理了

OpenCV4Android中怎么獲取卡號輪廓顯示

按鈕事件流程

  1. 將獲取的Mat圖像進行處理,處理方法我們都寫在了OpenCvUtil里面了,一會兒說GetAreaMat的方法

  2. 然后將處理好的Mat轉(zhuǎn)成bitmap的圖像.

  3. 再把bitmap的圖像轉(zhuǎn)為byte的數(shù)組,傳遞到我們的主頁界面

  4. 關(guān)閉本頁面.

  5. 最后主頁面的onActivityResulty的方法把byte的數(shù)組轉(zhuǎn)回成bmp顯示在頁面上

Mat圖像處理方法

我們攝像頭獲取卡號時,拍下的照片進行處理,把多余部分盡量去掉,獲取一個完整的卡片信息,以便于我們后序的圖像識別.

獲取卡片圖像的操作原理

  1. 原圖像的梯度求取

  2. 然后把梯度圖像進行二值化處理

  3. 然后在輪廓的發(fā)現(xiàn)與過濾

  4. 返回圖像

OpenCvUtils里的GetAreaMat方法,就是按照我們上面的原理流程寫出的處理方法,直接貼出來,里面的Matgradient方法是圖像梯度化的方法,仔細看了下就是整個流程:

public class OpenCvUtils {

    //獲取需要的區(qū)域
    public static Mat GetAreaMat(Mat src) {
        Mat dst = new Mat();
        Mat area = new Mat();

        src.copyTo(dst);

        //首先將資源梯度化
        Matgradient(dst);
        //先改為灰度圖像
        Imgproc.cvtColor(dst, dst, Imgproc.COLOR_BGR2GRAY);
        //二值化圖像處理
        Imgproc.threshold(dst, dst, 40, 255, Imgproc.THRESH_BINARY);
        //對圖像進行開操作(先腐蝕后膨脹)
        Mat strElement = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3));
        Imgproc.morphologyEx(dst, dst, Imgproc.MORPH_OPEN, strElement);

        //尋找輪廓
        List<MatOfPoint> contours = new ArrayList<>();
        Mat hireachy = new Mat();
        /**
         * Imgproc.RETR_EXTERNAL代表尋找輪廓外層最大的輪廓
         */
        Imgproc.findContours(dst, contours, hireachy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE, new Point(0, 0));
        /**
         * 獲取寬和高
         * 用于除2是為了占總圖像一半,用于分析想找到的區(qū)域
         */
        int hw = dst.cols()/2;
        Rect roi = new Rect();
        for(int i=0;i<contours.size();i++) {
            Rect rect = Imgproc.boundingRect(contours.get(i));
            if (rect.width > hw ) {
                roi.x = rect.x;
                roi.y = rect.y;
                roi.width = rect.width;
                roi.height = rect.height;
                break;
            }
        }

        //為0說明未找到區(qū)域
        if (roi.width == 0 || roi.height == 0) {
            src.copyTo(area);
        } else {
            src.submat(roi).copyTo(area);
        }
        dst.release();
        return area;
    }

    //將Mat對象梯度化
    private static void Matgradient(Mat src) {
        //先計算梯度
        Mat grad_x = new Mat();
        Mat grad_y = new Mat();
        Mat abs_grad_x = new Mat();
        Mat abs_grad_y = new Mat();
        //先把X方向梯度化
        Imgproc.Scharr(src, grad_x, CvType.CV_32F, 1, 0);
        //再把Y方向梯度化
        Imgproc.Scharr(src, grad_y, CvType.CV_32F, 0, 1);
        //絕對值
        /**
         * 因為獲取的grad_x和grad_y有可能是負值,我們要求的是0-255之間的數(shù)值
         * 所以需要把原來的梯度化的生成絕對值
         */
        Core.convertScaleAbs(grad_x, abs_grad_x);
        Core.convertScaleAbs(grad_y, abs_grad_y);
        grad_x.release();  //處理完記得及時釋放節(jié)省資源
        grad_y.release();  //處理完記得及時釋放節(jié)省資源
        //梯度圖像
        /**
         * 根據(jù)最后獲取的兩個絕對值,把圖像重新合并,兩個0.5的參數(shù)就是圖像的比重
         */
        Core.addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, src);
        abs_grad_x.release();  //處理完記得及時釋放節(jié)省資源
        abs_grad_y.release();  //處理完記得及時釋放節(jié)省資源
    }
}

上述內(nèi)容就是OpenCV4Android中怎么獲取卡號輪廓顯示,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文題目:OpenCV4Android中怎么獲取卡號輪廓顯示
鏈接分享:http://aaarwkj.com/article18/jejcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、品牌網(wǎng)站設(shè)計、響應式網(wǎng)站、網(wǎng)站營銷、用戶體驗建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
精品一区二区在线不卡| 黄色av免费播放网站| 国产国产精品人在线观看| 欧美两性色一区二区三区| 天堂av日韩在线播放| 国产经典三级在线观看| 99热成人精品热久久| 18禁超污网站免费观看| 中文字幕91在线播放| 亚洲欧美综合精品二区| 国产亚洲成人精品一区| 国产午夜精品福利爽爽| 国产精品亚洲综合制服日韩| 日本一区二区三区免费不卡视频| 午夜少妇伦理一区二区| 日本免费的高清一区二区| 国产亚洲综合一区二区三区| 日韩一区二区三区视频在线看| 日韩精品一区免费电影| 日韩在线不卡一二三| 日韩成年人高清精品不卡一区二区| 国产三级三级三级三级| 一区二区三区毛片av网站| 日韩在线视频这里只有精品| 日韩精品视频一区二区在线观看| 日韩精品欧美精品一区二区| 国产精品妇女一二三区| 欧美一区日韩二区国产三区| 国产白丝精品爽爽久久| 免费观看国产性生活片| 国产农村妇女一区二区三区| 亚洲国产中文一区二区久久| 亚洲天堂人妻一区二区| 午夜少妇久久久久久久久| 亚洲午夜一区二区三区精品影院 | 太爽了少妇高潮在线看片| 国产精品99久久久久久宅男九| 亚洲成人午夜激情的三级网| 91久久一区二区秋霞免费| 午夜免费成人在线视频| 亚洲精品午夜久久久av|