国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】

這篇具有很好參考價值的文章主要介紹了【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】,Matlab圖像處理(初級版),matlab

?一、獲取代碼方式

獲取代碼方式1:
完整代碼已上傳我的資源:【矩陣檢測】基于matlab Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】
點擊上面藍色字體,直接付費下載,即可。

獲取代碼方式2:
付費專欄Matlab圖像處理(初級版)

備注:
點擊上面藍色字體付費專欄Matlab圖像處理(初級版),掃描上面二維碼,付費29.9元訂閱海神之光博客付費專欄Matlab圖像處理(初級版),憑支付憑證,私信博主,可免費獲得1份本博客上傳CSDN資源代碼(有效期為訂閱日起,三天內(nèi)有效);
點擊CSDN資源下載鏈接:1份本博客上傳CSDN資源代碼

?二、部分源代碼

clc;clear;
tic
%%%step1, image input
F=imread(‘test3.bmp’);
figure, imshow(F);
title(‘輸入圖像.’);
%%%step2, image in the early proceesing
BW=im2bw(F,0.8);
figure,imshow(BW);
title(‘二值化圖像.’);
se=strel(‘square’,2);
BW1=imopen(BW,se);
figure;imshow(BW1);
title(‘The image by open operation.’);
g=edge(BW1,‘canny’,0.2);
figure, imshow(g);
title(‘二值化圖像邊緣.’);
[K,T]=size(g);
I=zeros(K,T);
%%%step3,generate the edge image,finding dmax and dmin
[l,num]=bwlabel(g,8);%標定最大
[numax,numin]=maxmin(g,l,num);
center{numax}=[zeros(1,2)];
[dmax,gmax,center{numax}]=choose(g,l,numax);
[dmin,gmin,center{numin}]=choose(g,l,numin);

figure,imshow(g);
title(‘找到所有目標中心.’);
for k=1:num
geve{k}=[zeros(K,T)];center{k}=[zeros(1,2)];
[deve(k),geve{k},center{k}]=choose(g,l,k);
hold on
plot(center{k}(1),center{k}(2),‘+r’) %plot on original image
hold off
end

deve=zeros(num,1);
z=1;
Z=zeros(1,num);
for k=1:num %detect of each target whether is rectangle.
disp(‘The’);disp(k);disp(‘target is determined!’)
geve{k}=[zeros(K,T)];center{k}=[zeros(1,2)];
[deve(k),geve{k},center{k}]=choose(g,l,k);
%%%step4,hough transform
dtheta=3pi/(4dmax);
drho=3/4;
[h{k},theta{k},rho{k}]=hough(geve{k},dtheta,drho);
figure,imshow(h{k},‘XData’,theta{k},‘YData’,rho{k},‘InitialMagnification’,‘fit’);
axis on,axis normal;
xlabel(‘\theta’),ylabel(‘\rho’);
%%%step5,finding peaks in hough transform matrics
numpeaks=8;
threshold=round(0.5*max(h{k}(??));%there are some problems about the parameter of nhood.
Q=houghpeaks(h{k},numpeaks,‘Threshold’,threshold);%r,c are coordinate of identified peaks
c{k}=Q(:,2);
r{k}=Q(:,1);
hold on
plot(theta{k}(c{k}),rho{k}(r{k}),‘linestyle’,‘none’,‘marker’,‘s’,‘color’,‘r’)
%%%step6,plot lines on original axis, edged image
fillgap=5;
minlength=5;
lines{k}=houghlines(geve{k},theta{k},rho{k},r{k},c{k},fillgap,minlength);
figure,imshow(geve{k}),hold on
for t=1:length(lines{k})
xy{k}=[lines{k}(t).point1;lines{k}(t).point2];
plot(xy{k}(:,2),xy{k}(:,1),‘linewidth’,2,‘color’,[1 0 0]);
end
hold on
plot(center{k}(1),center{k}(2),‘+r’)
hold off

%%%step7,determine the target whether is a rectangle
t=1;
Tc=3;
Tl=0.4;
Talpha=3;
for i=1:length(lines{k})
for j=i+1:length(lines{k})
C{k}(i)=lines{k}(i).length;
dtheta(i,j)=abs(lines{k}(i).theta-lines{k}(j).theta);
dC(i,j)=abs(lines{k}(i).length-lines{k}(j).length);
aC(i,j)=Tl*(lines{k}(i).length+lines{k}(j).length)/2;
end
end

for i=1:length(lines{k})
for j=i+1:length(lines{k})
if dtheta(i,j)<Tc && dC(i,j)<aC(i,j)
H{k}(i,:)={lines{k}(i).rho;lines{k}(i).theta};
H{k}(j,:)={lines{k}(j).rho;lines{k}(j).theta};
w{k}(t)=abs((lines{k}(i).rho-lines{k}(j).rho))/2;
alpha{k}(t)=(lines{k}(i).theta+lines{k}(j).theta)/2;
p{k}(t,:)={w{k}(t);alpha{k}(t)};
t=t+1;
disp(‘it might be a rectangle!’);
else
D{k}(i,:)={lines{k}(i).rho;lines{k}(i).theta};
D{k}(j,:)={lines{k}(j).rho;lines{k}(j).theta};
disp(‘it might not be a rectangle!’);
end
end
end

%%to decide wether these lines are composing rectangle,if true,output H,P,M and C
%%if not output D and C;
disp(‘H=’);H{k}=cell2mat(H{k});disp(H{k});
disp(‘P=’);P{k}=cell2mat(p{k});disp(P{k});

t1=max(size(P{k}(:??));
t2=min(size(P{k}(:??));
t4=max(P{k}(:,2));
t5=min(P{k}(:,2));
if t2<2
N{k}=P{k};
disp(‘The target is not a rectangle!’)
else
if t1>=2
[r2,c1]=find(P{k}t4);
[r3,c2]=find(P{k}t5);
t6=max(size(r2));
t7=max(size(r3));
if t6
1 && t7
1
N{k}(1,1)=P{k}(r2,1);
N{k}(1,2)=P{k}(r2,2);
N{k}(2,1)=P{k}(r3,1);
N{k}(2,2)=P{k}(r3,2);
else
if t6>1 && t71
N{k}(1,1)=P{k}(r2(1,1),1);
N{k}(1,2)=P{k}(r2(1,1),2);
N{k}(2,1)=P{k}(r3,1);
N{k}(2,2)=P{k}(r3,2);
else if t6
1 && t7>1
N{k}(1,1)=P{k}(r2,1);
N{k}(1,2)=P{k}(r2,2);
N{k}(2,1)=P{k}(r3(1,1),1);
N{k}(2,2)=P{k}(r3(1,1),2);
else if t6>1 && t7>1
N{k}(1,1)=P{k}(r2(1,1),1);
N{k}(1,2)=P{k}(r2(1,1),2);
N{k}(2,1)=P{k}(r3(1,1),1);
N{k}(2,2)=P{k}(r3(1,1),2);
end
end
end
end
end
end
disp(‘N=’);disp(N{k});

t3=max(size(N{k}(:??));
t8=min(size(N{k}(:??));
if t32 && t82
dalpha=abs(abs(N{k}(1,2)-N{k}(2,2))-90);
if dalpha<Talpha
Z(1,z)=k;
z=z+1;
disp(‘It is a rectangle.’);
else
disp(‘D=’); D{k}=cell2mat(D{k});disp(D{k});
disp(‘C=’);disp(C{k});
disp(‘It is not a rectangle.’);
end
else
disp(‘It is not a rectangle.’);
end
end
%%%step8, output all determined rectangle and label it in BW image.
disp(‘There are’);disp(z-1);disp(‘rectangles in this image!’);
figure;imshow(BW);hold on;
for z1=1:num
if Z(1,z1)~=0
for t=1:length(lines{Z(1,z1)})
xy{Z(1,z1)}=[lines{Z(1,z1)}(t).point1;lines{Z(1,z1)}(t).point2];
plot(xy{Z(1,z1)}(:,2),xy{Z(1,z1)}(:,1),‘linewidth’,2,‘color’,[1 0 0]);
end
hold on
plot(center{Z(1,z1)}(1),center{Z(1,z1)}(2),‘+r’);
end
end
title(['Threre are ‘,num2str(z-1), ’ rectangles in this image.’]);
hold off
ts=toc;
disp(‘The total time for determination:’);disp(ts);

?三、運行結(jié)果

【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】,Matlab圖像處理(初級版),matlab
【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】,Matlab圖像處理(初級版),matlab
【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】,Matlab圖像處理(初級版),matlab
【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】,Matlab圖像處理(初級版),matlab

?四、matlab版本及參考文獻

1 matlab版本
2014a

2 參考文獻
[1]文海瓊,李建成.基于直方圖均衡化的自適應(yīng)閾值圖像增強算法[J].中國集成電路. 2022,31(03)

3 備注
簡介此部分摘自互聯(lián)網(wǎng),僅供參考,若侵權(quán),聯(lián)系刪除文章來源地址http://www.zghlxwxcb.cn/news/detail-756804.html

到了這里,關(guān)于【矩陣檢測】Hough霍夫變換矩陣檢測【含Matlab源碼 3563期】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Hough 算法(霍夫變換)

    目錄 一.什么是Hough 算法(霍夫變換) 它的基本思想是: Hough 變換的主要步驟為: 二、Hough 變換的應(yīng)用 它的主要應(yīng)用如下: 1. 直線檢測: 2. 圓檢測: 3. 橢圓檢測: 4. 三角形檢測: 5. 人臉檢測: Hough 變換(Hough Transform)是一種常用的檢測圖形的算法。 它通過搜索特定形狀(如直線,圓,橢

    2024年02月08日
    瀏覽(15)
  • 霍夫變換車道線識別-車牌字符識別代碼(matlab仿真與圖像處理系列第5期)

    霍夫變換車道線識別-車牌字符識別代碼(matlab仿真與圖像處理系列第5期)

    當使用霍夫變換進行車道線識別時,可以按照以下步驟來編寫 MATLAB 代碼: 讀入圖像:使用 imread 函數(shù)讀取包含車道線的圖像。 圖像預(yù)處理:為了減少噪音和突出車道線,可以對圖像進行預(yù)處理。通常,可以采用以下步驟: 將圖像轉(zhuǎn)換為灰度圖像:使用 rgb2gray 函數(shù)將彩色圖

    2024年02月11日
    瀏覽(44)
  • Python Opencv實踐 - 霍夫圓檢測(Hough Circles)
  • Python-OpenCV中的圖像處理-霍夫變換

    Python-OpenCV中的圖像處理-霍夫變換

    霍夫(Hough)變換在檢測各種形狀的技術(shù)中非常流行,如果要檢測的形狀可以用數(shù)學(xué)表達式描述,就可以是使用霍夫變換檢測它。即使要檢測的形狀存在一點破壞或者扭曲也是可以使用。 Hough直線變換,可以檢測一張圖像中的直線 cv2.HoughLines(image, rho, theta, threshold) return:返回值

    2024年02月13日
    瀏覽(124)
  • OpenCV-Python中的圖像處理-霍夫變換

    OpenCV-Python中的圖像處理-霍夫變換

    霍夫(Hough)變換在檢測各種形狀的技術(shù)中非常流行,如果要檢測的形狀可以用數(shù)學(xué)表達式描述,就可以是使用霍夫變換檢測它。即使要檢測的形狀存在一點破壞或者扭曲也是可以使用。 Hough直線變換,可以檢測一張圖像中的直線 cv2.HoughLines(image, rho, theta, threshold) return:返回值

    2024年02月12日
    瀏覽(30)
  • 圖像處理之hough圓形檢測

    圖像處理之hough圓形檢測

    點擊圖像處理之Hough變換檢測直線查看 下面直接描述檢測圓形的方法 對于一個半徑為 r r r ,圓心為 ( a , b ) (a,b) ( a , b ) 的圓,我們將其表示為: ( x ? a ) 2 + ( y ? b ) 2 = r 2 (x-a)^2+(y-b)^2=r^2 ( x ? a ) 2 + ( y ? b ) 2 = r 2 此時 x = [ x , y ] T , a = [ a , b , r ] T x=[x,y]^T,a=[a,

    2024年02月15日
    瀏覽(16)
  • Hough變換原理-直線檢測

    Hough變換原理-直線檢測

    目錄 ? 一、簡介 二、原理 三、Python代碼實現(xiàn) ? ????????Hough(霍夫)變換是圖像處理中從圖像中識別幾何形狀的基本方法之一。 Hough變換是將圖像坐標空間變換到參數(shù)空間 ,利用點與線的對偶性,將原始圖像空間的給定的曲線(今天主要介紹直線)通過曲線表達形式變

    2024年02月04日
    瀏覽(16)
  • 【OpenCv ? c++】幾何檢測 —— 霍夫變換 | 霍夫直線檢測 | 霍夫線變化

    【OpenCv ? c++】幾何檢測 —— 霍夫變換 | 霍夫直線檢測 | 霍夫線變化

    ?? 個人簡介:CSDN「 博客新星 」TOP 10 , C/C++ 領(lǐng)域新星創(chuàng)作者 ?? 作 ?? 者: 錫蘭_CC ?? ?? 專 ?? 欄: 【OpenCV ? c++】計算機視覺 ?? 若有幫助,還請 關(guān)注?點贊?收藏 ,不行的話我再努努力??????

    2024年02月06日
    瀏覽(17)
  • OpenCV中的圖像處理 —— 霍夫線 / 圈變換 + 圖像分割(分水嶺算法) + 交互式前景提?。℅rabCut算法)

    OpenCV中的圖像處理 —— 霍夫線 / 圈變換 + 圖像分割(分水嶺算法) + 交互式前景提?。℅rabCut算法)

    ??上一節(jié)我們介紹了OpenCV中傅里葉變換和模板匹配,這一部分我們來聊一聊霍夫線/圈變換的原理和應(yīng)用、使用分水嶺算法實現(xiàn)圖像分割和使用GrabCut算法實現(xiàn)交互式前景提取 ??哈嘍大家好,這里是ErrorError!,一枚某高校大二本科在讀的♂同學(xué),希望未來在機器視覺領(lǐng)域能夠有

    2023年04月08日
    瀏覽(31)
  • OpenCV——霍夫變換圓檢測

    OpenCV——霍夫變換圓檢測

    ? ? HoughCircles 該函數(shù)使用霍夫變換在灰度圖像中查找圓。 image :輸入圖像,需要為 8 位的灰度單通道圖像。 circle :找到的圓的輸出向量。每個向量被編碼為3或4個元素的浮點型向量 ( x , y , r a d i u s ) (x, y, radius) ( x , y , r a d i u s ) 或 ( x , y , r a d i u s , v o t e s ) (x, y, radius,

    2024年02月13日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包