日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Android OpenCV 边缘检测 Canny 的使用

發(fā)布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android OpenCV 边缘检测 Canny 的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

先看下實現(xiàn)的效果圖

下面看下代碼使用

Canny(Mat image, Mat edges, double threshold1, double threshold2, int apertureSize, boolean L2gradient)

?@param image 8-bit input image.
* @param edges output edge map; single channels 8-bit image, which has the same size as image .
* @param threshold1 first threshold for the hysteresis procedure.
* @param threshold2 second threshold for the hysteresis procedure.
* @param apertureSize aperture size for the Sobel operator.
* @param L2gradient a flag, indicating whether a more accurate \(L_2\) norm
* \(=\sqrt{(dI/dx)^2 + (dI/dy)^2}\) should be used to calculate the image gradient magnitude (
* L2gradient=true ), or whether the default \(L_1\) norm \(=|dI/dx|+|dI/dy|\) is enough (
* L2gradient=false )
第???????一個參數(shù)image:輸入圖像,單通道8位圖像
第二個參數(shù)edges:輸出邊緣圖像,需要和原圖像有一樣尺寸和類型
第三個參數(shù)threshold1:第一個滯后性閾值
第四個參數(shù)threshold2:第二個滯后性閾值 這個數(shù)值越大輪廓越少,
第五個參數(shù)apertureSize:表示應用sobel算子的孔徑大小其有默認值3
第六個參數(shù)L2gradient:bool類型的L2gradient,一個計算圖像梯度幅值的標識閾值1和閾值2中較小的用于邊緣的連接,較大的用于控制強邊緣的初始段。高低閾值比在2:1和3:1之間時最佳的

?

public class CanneyActivity extends AppCompatActivity {private ImageView imageView;private Bitmap bitmap;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.canney_activity_layout);imageView = findViewById(R.id.img);bitmap = ((BitmapDrawable) getResources().getDrawable(R.mipmap.photo)).getBitmap();imageView.setImageBitmap(bitmap);findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Bitmap canneyBitmap = toCanneyByOpencv(bitmap);imageView.setImageBitmap(canneyBitmap);}});}private Bitmap toCanneyByOpencv(Bitmap bitmap) {Mat mat = new Mat();Utils.bitmapToMat(bitmap, mat);Mat gray= new Mat();// 轉灰度圖片
//        Imgproc.cvtColor(mat, gray, Imgproc.COLOR_BGR2GRAY);// 使用3x3的內(nèi)核來降噪
//        Imgproc.blur(mat, gray, new Size(3,3));// 高斯降噪
//        Imgproc.GaussianBlur(mat, gray, new Size(3,3),5,5);//3 描繪邊緣Imgproc.Canny(mat, gray, 50, 200, 3, false);Utils.matToBitmap(gray, bitmap);return bitmap;}@Overrideprotected void onResume() {super.onResume();OpenCVLoader.initDebug();}}

xml 代碼

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><ImageViewandroid:id="@+id/img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="fitXY" /><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="邊緣檢測"/></LinearLayout>

可以修改threshold2 查看輪廓

public class CanneyActivity extends AppCompatActivity {private ImageView imageView;private Bitmap bitmap;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.canney_activity_layout);imageView = findViewById(R.id.img);bitmap = ((BitmapDrawable) getResources().getDrawable(R.mipmap.photo)).getBitmap();imageView.setImageBitmap(bitmap);findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Bitmap canneyBitmap = toCanneyByOpencv(bitmap);imageView.setImageBitmap(canneyBitmap);}});}private Bitmap toCanneyByOpencv(Bitmap bitmap) {Mat mat = new Mat();Utils.bitmapToMat(bitmap, mat);Mat gray= new Mat();// 轉灰度圖片
//        Imgproc.cvtColor(mat, gray, Imgproc.COLOR_BGR2GRAY);// 使用3x3的內(nèi)核來降噪
//        Imgproc.blur(mat, gray, new Size(3,3));// 高斯降噪
//        Imgproc.GaussianBlur(mat, gray, new Size(3,3),5,5);//3 描繪邊緣Imgproc.Canny(mat, gray, 3, 3, 3, false);Utils.matToBitmap(gray, bitmap);return bitmap;}@Overrideprotected void onResume() {super.onResume();OpenCVLoader.initDebug();}}

這個時候在看下效果圖如下

?

總結

以上是生活随笔為你收集整理的Android OpenCV 边缘检测 Canny 的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女131爽爽爽| 中文字幕一区二区不卡 | 久久亚洲aⅴ无码精品 | av永久免费在线观看 | 毛片毛片毛片毛片毛片毛片 | 国产又粗又大又爽视频 | 国产白丝袜美女久久久久 | 日欧美女人 | 性xxxx视频| 好爽…又高潮了毛片免费看 | 亚洲国产乱 | 性色av蜜臀av浪潮av老女人 | 狠狠操在线播放 | a黄色大片| 九九热精品视频在线观看 | 搡8o老女人老妇人老熟 | 国产精品夜夜爽张柏芝 | 欧美69囗交视频 | 在线视频亚洲色图 | 男人天堂资源 | 欧美成人精品在线观看 | 黄色av影视 | 2020av在线| 老司机伊人 | 免费观看日韩av | 久久爱综合网 | 色妇网 | 亚洲AV无码精品自拍 | 国产一区两区 | 日本激情视频在线观看 | 免费看污黄网站在线观看 | 精品久久五月天 | av黄在线 | 中文字幕丰满乱子伦无码专区 | 久久不射网 | 成人深夜视频 | 欧美熟妇激情一区二区三区 | 中文字幕日韩国产 | 激情拍拍拍 | 毛片视频网站在线观看 | av网址免费在线观看 | av网址免费 | 色av一区二区三区 | 一本一道波多野结衣一区二区 | 欧美成人午夜视频 | 老司机深夜福利在线观看 | www日韩视频| 片黄在线观看 | 91欧美一区二区 | av图片在线观看 | 视频一区二区三区精品 | 99re这里都是精品 | 青青草原伊人网 | 亚洲第一页在线观看 | 国产日韩亚洲 | 超碰99在线 | japanese国产在线观看 | 五月婷婷小说 | youjizzcom日本 | www.999热 | 三级在线观看网站 | 污污视频在线 | 136福利视频导航 | 国偷自产av一区二区三区麻豆 | 欧美人与性动交g欧美精器 国产在线视频91 | 欧美不卡视频在线观看 | 高h捆绑拘束调教小说 | 国产1区在线| 国产专区一 | 鲁丝一区二区三区 | 波多野结衣免费在线视频 | 奇米影视四色7777 | 亚洲精品乱码久久久久久久 | 黄色av不卡 | 天海翼av| 91av免费在线观看 | 青青草原在线免费观看视频 | 久久久夜夜夜 | 二区中文字幕 | 日韩成人福利视频 | 色人阁av | 已满18岁免费观看电视连续剧 | 无码人妻精品一区二区中文 | 高潮疯狂过瘾粗话对白 | 亚洲综合精品在线 | 91xxx在线观看 | 亚洲国产成人无码av在线 | 林天顾悦瑶笔趣阁 | 欧美日韩小说 | 国产亚洲精品久久久久丝瓜 | 精品综合久久久 | 欧美视频在线一区 | 欧美日韩在线一区二区 | av播放在线 | 人人妻人人做人人爽 | 六月丁香婷婷激情 | 成年人看片网站 | 午夜精品导航 | 亚洲欧美激情小说另类 |