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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

基于matlab的目标检测的基本思路

發布時間:2023/12/15 循环神经网络 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于matlab的目标检测的基本思路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

圖像處理之目標檢測

  • 目標檢測的基本思路
  • 遇到的問題
    • 鹿
  • 總結
  • 附錄

目標檢測的基本思路

對于輪廓清晰的圖片,可以先檢測出他的輪廓,此時會有背景的輪廓也被添加進來,可以通過先填洞,再腐蝕和膨脹來消除多余的邊緣來找到目標的輪廓。對于輪廓不清晰或者背景很復雜的圖片,可以通過圖像二值化,用特定的閾值將需要的目標篩選出來,或是將圖像分塊處理,再進行形態學操作使輪廓更為具體。

遇到的問題

鹿

對于彩色圖像想要提取某一特定顏色閾值比較難選取,圖像中目標的顏色不是唯一的,有彩色和黑色和白色,可以通過將rgb空間轉換為ycbcr空間,在ycbcr上分別選取閾值
如圖

可以大致識別出鹿的輪廓,再將圖像進行膨脹腐蝕,消除小的連通域即可獲得輪廓
腐蝕,并選區最大聯通域后如圖

有的地方被腐蝕掉了。
代碼如下:

y_min=0;y_max=256; cb_min= 90;cb_max=150 ; cr_min=124 ;cr_max= 180;roi=roicolor(img_ycbcr(:,:,1),y_min,y_max) & roicolor(img_ycbcr(:,:,2),cb_min,cb_max) & roicolor(img_ycbcr(:,:,3),cr_min,cr_max);

先將圖像二值化處理后發現圖像下半部分有明顯的干擾信息,所以決定將圖像分成上下兩部分來處理,由于下半部分不存在要識別的目標,所以下半部分可以顯示原圖,上半部分二值化后由于本身就具有很大的差別,可以比較清晰的顯示出目標來,如圖

后續處理與上圖類似
結果如圖

把圖片分成兩塊:

img=imread('people.jpg'); img1=imcrop(img,[0,0,400,170]); img2=imcrop(img,[0,171,400,304]);

其余正常處理

這張圖目標與背景區別很大,比較好檢測
最開始二值化的時候選好閾值即可,再用canny算子提取邊緣

雖然有一條背景的線,但他不是連通域,用imfill填滿連通域后再腐蝕即可把這條線消除
提取邊緣后結果如圖

代碼如下:

img_bw=im2bw(img_gray,0.8);img_edge=edge(img_bw,'canny'); %imshow(img_edge); dil_filter=strel('square',2);%膨脹一下 img_edge=imdilate(img_edge,dil_filter);img_edge=bwperim(img_edge); img_full=imfill(img_edge,'holes');ero_filter=strel('square',3); img_full=imerode(img_full,ero_filter); img_full=bwareaopen(img_full,50);out_edge=edge(img_full,'canny'); out_edge=imdilate(out_edge,dil_filter);

花的紅色其實可以用rgb中的r或者g來分離,但是也可以直接轉換為二值圖設定閾值來分離,會有很小的葉子被檢測到,腐蝕后會有斑點,只需要消除小的連通域即可。如圖

與花類似,第一步用閾值分割即可達到較好的效果

總結

用閾值法分割可以得到大部分比較好的效果,這個閾值我的理解就是在一張灰度圖中,灰度值不變的區域圖像的一階導數為零,直到出現了灰度值變化,一階導數大于或小于零,而閾值的存在就是為了給何時判定一階導數不為零選擇了一個標準,而灰度圖像的像素值又是由彩色圖像的RGB三個值決定的,一般是由傳統公式Gray= R0.299+G0.587+B*0.114來計算的,可以看到G的比重最大,B的比重最小,所以轉換出灰度圖像的結果中,如果原圖的綠色信息或者紅色信息較為敏感,那么在進行閾值分割的時候用一步分割即可得到較好的結果,比如花的圖片。另外就是在RGB圖中本身顏色差別就很大,這樣RGB三個通道的值的區別全都很大,也能得到較好的結果,比如狗的圖片,這樣的圖片就比較適合用閾值法分割。
而不具備這樣先天條件的圖片,RGB也不具備很好的物體的具體顏色信息,所以我選擇用ycbcr色彩空間進行閾值選取,其中Y表示顏色的明亮度和濃度,而Cb和Cr則分別表示顏色的藍色濃度偏移量和紅色濃度偏移量。可以界定一個范圍來帥選所需要的區域,這樣再進行二值化就效果好了很多。

附錄

濾波器h=fspecial(type,parameters); parameters為可選項,是和所選定的濾波器類型type相關的
配置參數,如尺寸和標準差等。
type為濾波器的類型。其合法值如下:

合法取值 功能
‘average’ 平均模板
‘disk’ 圓形領域的平均模板
‘gaussian’ 高斯模板
‘laplacian’ 拉普拉斯模板
‘log’ 高斯-拉普拉斯模板
‘prewitt’ Prewitt水平邊緣檢測算子
‘sobel’ Sobel水平邊緣檢測算子

中值濾波h=medfilt2(I1,[m,n]);
結構元素函數strel(shape,parameters); shape指定了結構元素的形狀。parameters是和輸入shape有關的參數。

合法取值 功能描述
‘arbitrary’或為空 任意自定義結構元素
‘disk’ 圓形結構元素
‘square’ 正方形結構元素
‘rectangle’ 矩形結構元素
‘line’ 線性結構元素
‘pair’ 包含2個點的結構元素
‘diamond’ 菱形的結構元素
‘octagon’ 8角形的結構元素

膨脹I2=imdilate(I,SE); SE=strel(shape,parameters);
腐蝕 I2=imerode(I,SE);
開運算I2=imopen(I,SE);消除細小物體
閉運算I3=imclose(I,SE);填充細小空洞,連接鄰近物體
擊中擊不中變換Ihm=bwhitmiss(I,SE1,SE2);

形態學處理Iout=bwmorph(I,operation,n)

合法取值 功能描述
‘bridge’ 橋接有單個像素縫隙分割的前景像素
‘clean’ 清楚孤立的前景像素
‘diag’ 圍繞對角線相連的前景像素進行填充
‘fill’ 填充單個像素的孔洞
‘hbreak’ 去掉前景中的H形連接
‘majority’ 如果點P的8領域中一半以上像素為前景像素,則P為前景像素,否則為背景。
‘remove’ 去除內部像素(無背景像素相鄰的前景)
‘shrink’ 將物體收縮為一個點或者帶洞的環形
‘skel’ 骨骼化圖像
‘spur’ 去除“毛刺”
‘thicken’ 粗化物體
‘thin’ 將物體細化至最低限度相連的線形

邊緣檢測BW=edge(I,type,thresh,direction,’nothinning’) thresh是敏感度閾值參數,任何灰度值低于此閾值的邊緣將不會被檢測到。默認值為空矩陣[],此時算法自動計算閾值。

type合法取值 梯度算子
‘sobel’ sobel算子
‘prewitt’ prewitt算子
‘reberts’ robert算子

基于高斯-拉普拉斯算子的邊緣檢測BW=edge(I,’log’,thresh,sigma) sigma指定生成高斯濾波器所使用的標準差。默認時,標準差為2。
基于Canny算子的邊緣檢測BW=edge(I,’canny’,thresh,sigma)

總結

以上是生活随笔為你收集整理的基于matlab的目标检测的基本思路的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。