91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

基于三次樣條插值的指針式儀表圖像分割方法,首先提取包含指針的圓形區域作為信息圖,對信息圖進行中值濾波、灰度拉伸;其次使用16個固定的閾值對信息圖進行分割,并統計指針的長度和面積;最后使用三次樣條插值法對面積序列插值并計算其一階差分,以指針長度大于信息圖半徑的最小閾值作為起點,求得一階差分的第一個波谷點,以該點對應的灰度值作為分割閾值對信息圖進行圖像分割。解決了指針陰影被分割為指針的問題。

資源截圖

代碼片段和文件信息

function?[erzhihuayuzhixinxitulashenminlashenmax]=newend(Lrr1)
tic?%L為儀表灰度圖??r為信息區域半徑??r1為轉到軸心半徑
%%%%%%%%%%%%%%%%%%%灰度拉伸增大對比度%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[counts0?~]?=?imhist(L);
for?i=255:-1:1
????if?counts0(i)~=0
????????max0=i-1;?%?直方圖最后一個不為0的灰度值
????????break;
????end
end
for?i=2:255?
????if?counts0(i)~=0
????????min0=i-1;?%直方圖第一個不為0的灰度值
????????break;
????end
end?????????????%拉伸區域有原始圖min0和max1決定
lashenL=imadjust(L[min0/255?max0/255][01]);%對信息圖拉伸
lashenL=uint8(lashenL);%轉換數據類型
lashenmin=min0;lashenmax=max0;
%%%%%%%%%%%%%%%%%%%%求帶入的灰度值數組%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Tk=0:15:255;
Tk=Tk+1;%方便作圖、擬合、給矩陣賦值?下標從1開始
k=18;
%%%%%%%計算模塊,得到對應灰度值二值化后的指針所在連通域的長度,面積%%%%%%
changdu=zeros(1256);
areanice=zeros(1256);
for?i=1:k
????if?i~=k??%避免把圓形區域以外的填充色計算在內
????????erzhihua=im2bw(lashenL(Tk(i)-1)/255);
????else
????????erzhihua=im2bw(lashenL(Tk(i)-2)/255);%最后一個用254分割,排除圓形以外的區域
????end
????erzhihua=~erzhihua;?%取反便于調用函數
????[zhizhentumaxarea]=maxandlabel(erzhihua);%CV是只保留最大連通域的黑底圖,maxarea為最大連通域的像素數
????chang=regionprops(zhizhentu‘BoundingBox‘);
????changdu(Tk(i))=sqrt(chang.BoundingBox(13)^2+chang.BoundingBox(14)^2);%取最大包絡矩形的最大邊長,非指針長度
????areanice(Tk(i))=maxarea;
????%imwrite(zhizhentu[‘F:\MATLABCODE\idtry\二值化系列圖片\‘num2str(Tk(i)-1)‘.jpg‘]);%保存到制定文件夾
end
?%%%%%%%%%%%%%%%%%%%%%%%%計算面積落差做大處作為擬合上限mianjiok%%%%%%%%%%%%
mianjidif=abs(areanice(Tk(1:k-1))-areanice(Tk(2:k)));
[~ind]=sort(mianjidif‘descend‘);%ind為面積降序排列的下角標k索引值
mianjiok=ind(11);
%%%%%%%%%%%%%%%%%%計算指針所在連通域達到半徑處作為zhizhenok下限%%%%%%%%%%%%
for?i=1:k
????if?changdu(Tk(i))>r+0.5*r1?%將轉動軸心半徑也考慮在內
????????zhizhenok=i;
????????break;
????end
end
%%%%%%%%%%%%%%%%%%%%%獲取擬合橫縱坐標,并作5階曲線擬合%%%%%%%%%%%%%%%%%%%%?
dianshu=mianjiok-zhizhenok+1;%擬合數據點的個數
niheyuzhi0=zeros(1dianshu);
nihearea0=zeros(1dianshu);
for?i=zhizhenok:mianjiok
????niheyuzhi0(i-zhizhenok+1)=Tk(i)-1;
????nihearea0(i-zhizhenok+1)=areanice(Tk(i));
end
zeroshu=0;
for?i=1:dianshu-1
????if?nihearea0(i)==nihearea0(i+1)
????????nihearea0(i)=0;
????????zeroshu=zeroshu+1;
????end
end
ig=1;

評論

共有 條評論