結合血管資訊的視盤定位

2021-09-11 17:10:10 字數 4080 閱讀 4716

結合血管資訊的視盤定位

%% matched filter2,測試程式

clc,close all,clear all;

%% 讀取影象

img=imread('e:\糖網\預處理\shipantiqu\shipan4\roi4.jpg');

%% 轉換成灰度影象

if length(size(img))==3

img0=rgb2gray(img);

end%% 自適應直方圖均衡化

img1 = adapthisteq(img0, 'numtiles', [15 15], 'cliplimit', 0.05);

figure,imshow(img1);

%% 高斯匹配濾波

[g,bg]=matchedfilter2(img1);

figure,imshow(bg);

%% 腐蝕處理

he = strel('disk',2);

img2=imerode(bg,he);

figure;imshow(img2);

%% 提取連通域

img3=xueguanliantongyu(img2);

figure,imshow(img3);

%% 形態學膨脹得到較為完整的包含滲出物的候選區域

he = strel('disk',1);

img3=imdilate(img3,he);

figure,imshow(img3);

img0=double(img0);

img4=img0.*img3;

% img0=double(img0);

% img4=img0.*(1-img3);

% figure,imshow(uint8(img4));

% % img5=imreconstruct(img4,img0);

% figure,imshow(uint8(img5));

% % img6=img0-img5;

% figure,imshow(img6);

%% 視盤定位

n1=[135 120 120 105 90 75 60 60 45;

150 135 120 105 90 75 60 45 30;

150 135 135 120 90 60 45 30 30;

165 165 150 135 90 45 30 15 15;

0 0 0 0 0 0 0 0 0;

15 15 30 45 90 135 150 165 165;

30 30 45 60 90 120 135 150 150;

30 45 60 75 90 105 120 135 150;

45 60 60 75 90 105 120 120 135];

n2=[2 2 2 2 2 2 2 2 2;

2 2 2 2 2 2 2 2 2;

2 2 3 3 3 3 3 2 2;

2 2 3 3 3 3 3 2 2;

2 2 3 3 3 3 3 2 2;

2 2 3 3 3 3 3 2 2;

2 2 3 3 3 3 3 2 2;

2 2 2 2 2 2 2 2 2;

2 2 2 2 2 2 2 2 2];

n3=n1.*n2;

y=imfilter(img4,n3,'replicate');

figure,

subplot(121),imshow(y);

[n]=max(max(y));

[p q]=find(n==y);

m=y>=n;

% imwrite(m,'e:\糖網\預處理\shipantiqu\shipan6\xiangying6.jpg')

subplot(1,2,2),imshow(m);

hold on;

plot(q, p, 'g*');

需要用到的一些function

function [g,bg]=matchedfilter2(f)

f=double(f);

% subplot(1,2,1);

% imshow(uint8(f));

% title('origin image');

% mean filter

f=medfilt2(f,[5,5]);

% f=medfilt2(f,[21 1]);

% f=medfilt2(f,[1,7]);

% 引數

os=12; % 角度的個數

sigma=2;

tim=3;

l=9;

t=120; % 全域性閾值,需要多次嘗試

thetas=0:(os-1);

thetas=thetas.*(180/os);

n1=-tim*sigma:tim*sigma;

n1=-exp(-(n1.^2)/(2*sigma*sigma));

n=repmat(n1,[2*floor(l/2)+1,1]);

r2=floor(l/2);

c2=floor(tim*sigma);

[m,n]=size(f);

rns=cell(1,os); % rotated kernals 旋轉角尺

mfrs=cell(1,os); % filtered images

g1=f;

% matched filter

for i=1:os

theta=thetas(i);

rn=imrotate(n,theta);

%去掉多餘的0行和零列

rn=rn(:,any(rn));

rn=rn(any(rn'),:);

meann=mean2(rn);

rn=rn-meann;

rns=rn;

mfrs=imfilter(f,rn,'conv','symmetric');

end

% get the max response

g=mfrs;

for j=2:os

g=max(g,mfrs);

endbg=g>t;

% subplot(1,2,2);

% imshow(bg);

% title('filterd image');

end

function [img]=xueguanliantongyu(i)

if length(size(i))>2

i = rgb2gray(i);

endif ~islogical(i)

imbw = im2bw(i); %轉換為二值化影象

else

imbw = i;

endimbw = im2bw(i); %轉換為二值化影象

imlabel = bwlabel(imbw); %對各連通域進行標記

stats = regionprops(imlabel,'area'); %求各連通域的大小

area = cat(1,stats.area);

index = find((area >=1000)&(area<=10000000)); %求最大連通域的索引

img = ismember(imlabel,index); %獲取最大連通域影象

原圖

實際效果

css定位相關的資訊

111 222z index 屬性設定元素的堆疊順序。擁有更高堆疊順序的元素總是會處於堆疊順序較低的元素的前面。元素可擁有負的 z index 屬性值。z index 僅能在定位元素上奏效 例如 position absolute 該屬性設定乙個定位元素沿 z 軸的位置,z 軸定義為垂直延伸到顯示區...

GPRM GNRMC定位資訊的讀取與解析

幀頭 utc時間 狀態緯度 北緯 南緯 經度東經 西經 速度 gprmc hhmmss.sss a vddmm.mmmm n sdddmm.mmmm e w節 方位角utc日期 磁偏角磁偏角方向 模式校驗 回車換行 度ddmmyy 000 180 e wa d e n hhcr lf 格 式 gpr...

生物資訊學在心血管系統疾病中的應用

心血管疾病簡介 心血管疾病是一組心臟和血管疾患的名稱,心血管疾病是全球的頭號死因 每年死於心血管疾病的人數多於其它任何 心臟病發作和中風通常屬於急症,主要是由於堵塞導致血液不能流入心臟或大腦。這種情況發生的最常見原因是在心臟或腦部供血血管內壁上堆積有脂肪層。中風也可能是因腦血管或血栓出血造成。心血管...