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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结构张量用于区分平坦、边缘、角点区域

發布時間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构张量用于区分平坦、边缘、角点区域 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.結構張量原理

此處所說的張量不是相對論或黎曼幾何里的張量,黎曼幾何的張量好多論文都叫張量場了。也不是數學界還沒研究明白的對矩陣進行擴展的高階張量,主要是張量分解。這里的結構張量就是一個矩陣,一個對圖像像素進行組織的數據結構而已。
像素組織而成的矩陣如下:

這個公式太常見了,在harris角點檢測中就用到了。其中Ix,Iy就是原對原圖像在x和y方向求得的偏導。然后求矩陣E的行列式K和跡H。然后根據K和H的關系就能區分圖像的區域模式了。
模式分以下三類:
平坦區域:H=0;
邊緣區域:H>0 && K=0;
角點區域:H>0 && K>0;
harris角點檢測就用到了第三類判斷。
當然,在實際應用的時候H和K的值肯定都不會是理想,所以我用的都是近似判斷。
結構張量行列式與跡的關系

其中紅框為平坦區域,黃框為邊緣區域,綠框為角點區域。

2.MATLAB代碼仿真

clear all; close all; clc;img=double(imread('lena.jpg')); [m n]=size(img); imshow(img,[])[Ix Iy]=gradient(img); Ix2=Ix.^2; Iy2=Iy.^2; Ixy=Ix.*Iy;k=1; lambda=zeros(m*n,2); for i=1:mfor j=1:n st=[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)]; %結構張量K=det(st); %求行列式H=trace(st); %求跡%所有的判斷都是近似的% if H<50 %認為是平坦區域% if H>50 && abs(K)<0.01*10^(-9) %認為是邊緣區域if H>50 && abs(K)>0.01*10^(-9) %認為是角點區域img(i,j)=255;endlambda(k,:)=[K H];k=k+1;end endfigure; plot(lambda(:,1),lambda(:,2),'.'); ylabel('trace');xlabel('det');figure; imshow(img,[])

3.實驗結果


原始圖像 ?? ?? ?
平坦區域 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?邊緣區域 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?角點區域 ? ?? 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的结构张量用于区分平坦、边缘、角点区域的全部內容,希望文章能夠幫你解決所遇到的問題。

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