資源簡(jiǎn)介
基于霍夫變換的形狀檢測(cè)算法研究與實(shí)現(xiàn),內(nèi)包含源代碼和論文,用java算法實(shí)現(xiàn)。原創(chuàng)!

代碼片段和文件信息
package?com.liyulin.hough.circle;
import?java.awt.image.BufferedImage;
public?class?AutoHoughCircle?{
private?BufferedImage?oldImage?=?null;?//?原始圖片緩存對(duì)象
private?BufferedImage?newImage?=?null;?//?Hough處理后的圖片緩存對(duì)象
private?int?imageWidth;
private?int?imageHeight;
private?int[]?pixels;???????//?圖片所有像素值
private?int[]?acc;??????????//?各個(gè)像素點(diǎn)累加值
private?int?threshold?=?360;//?閾值
public?AutoHoughCircle(BufferedImage?image)?{
oldImage????=?image;
imageWidth??=?oldImage.getWidth();
imageHeight?=?oldImage.getHeight();
pixels?=?new?int[imageWidth?*?imageHeight];
//?獲取邊緣像素值
for?(int?y?=?0;?y? for?(int?x?=?0;?x? pixels[x?+?y?*?imageWidth]?=?oldImage.getRGB(x?y);//?獲取矩陣指定位置(x?y)的像素值
}
}
pixels?=?houghDetect();
newImage?=?new?BufferedImage(imageWidth?imageHeight?BufferedImage.TYPE_INT_RGB);
for?(int?i?=?0;?i? for?(int?j?=?0;?j? newImage.setRGB(j?i?pixels[j?+?i?*?imageWidth]);
}
}
}
/**
?*?霍夫變換處理?-?檢測(cè)半徑大小符合的圓的個(gè)數(shù)?
?*?1.?將圖像像素從2D空間坐標(biāo)轉(zhuǎn)換到極坐標(biāo)空間?
?*?2.?在極坐標(biāo)空間中歸一化各個(gè)點(diǎn)強(qiáng)度,使之在0?255之間?
?*?3.?根據(jù)極坐標(biāo)的R值與輸入?yún)?shù)(圓的半徑)相等,尋找2D空間的像素點(diǎn)?
?*?4.?對(duì)找出的空間像素點(diǎn)賦予結(jié)果顏色(紅色)?
?*?5.?返回結(jié)果2D空間像素集合
?*?
?*?@return?int?[]
?*/
public?int[]?houghDetect()?{
//?對(duì)于圓的極坐標(biāo)變換來說,我們需要360度的空間梯度疊加值
acc?=?new?int[imageWidth?*?imageHeight];//?默認(rèn)值為0
int?x0?y0;?????????????????????????????//?圓心坐標(biāo)
double?t;
int?r_start?=?50;
for?(int?r?=?r_start?r_threshold?=?Math.min(imageHeight?imageWidth)?/?2;?r? for?(int?x?=?0;?x? for?(int?y?=?0;?y? acc[x?+?(y?*?imageWidth)]?=?0;
}
}
for?(int?x?=?0;?x? for?(int?y?=?0;?y? if?((pixels[y?*?imageWidth?+?x]?&?0xff)?==?255)?{
//?進(jìn)行Hough變換
for?(int?theta?=?0;?theta?360;?theta++)?{
t??=?(theta?*?3.14159265)?/?180;?//?角度值0?~?2*PI
x0?=?(int)?Math.round(x?-?r?*?Math.cos(t));
y0?=?(int)?Math.round(y?-?r?*?Math.sin(t));
if?(x0??0?&&?y0??0)?{
acc[x0?+?(y0?*?imageWidth)]?+=?1;
}
}
}
}
}
for?(int?x?=?0;?x? for?(int?y?=?0;?y? if?(acc[x?+?(y?*?imageWidth)]?>=?threshold)?{
//?繪制發(fā)現(xiàn)的圓
drawCircle(-16776961?x?y?r);
System.out.println(“r=“+r);
}
}
}
}
return?pixels;
}
private?void?setPixel(int?value?int?xPos?int?yPos)?{
pixels[(yPos?*?imageWidth)?+?xPos]?=?value;
}
//?draw?circle?at?x?y
private?void?drawCircle(int?pix?int?xCenter?int?yCenter?int?r)?{
pix?=?-16776961;?//?顏色值,藍(lán)色
int?x?y?r2;
r2?=?r?*?r;
//?繪制圓的上下左右四個(gè)點(diǎn)
if?(xCenter?-?r?>?0?&&?yCenter?-?r?>?0
&&?xCenter?+?r? &&?yCenter?+?r? setPixel(pix?xCenter?yCenter?+?r);
set
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????209??2014-03-29?17:10??源代碼及論文\二值圖像.txt
?????文件???????3083??2014-05-14?18:24??源代碼及論文\分析.txt
?????文件????1132392??2014-11-04?16:56??源代碼及論文\基于霍夫變換的形狀檢測(cè)算法研究與實(shí)現(xiàn).pdf
?????文件???????1072??2014-11-04?16:56??源代碼及論文\畢業(yè)論文.txt
?????文件????????301??2014-02-07?12:07??源代碼及論文\源代碼\.classpath
?????文件????????388??2014-05-21?03:56??源代碼及論文\源代碼\.project
?????文件????????598??2014-02-07?12:07??源代碼及論文\源代碼\.settings\org.eclipse.jdt.core.prefs
?????文件???????3424??2014-05-23?15:02??源代碼及論文\源代碼\bin\com\liyulin\hough\circle\AutoHoughCircle.class
?????文件???????2918??2014-05-23?05:54??源代碼及論文\源代碼\bin\com\liyulin\hough\circle\HoughCircle.class
?????文件???????3574??2014-05-23?14:58??源代碼及論文\源代碼\bin\com\liyulin\hough\circle\TAutoHoughCircle.class
?????文件???????4548??2014-05-23?01:30??源代碼及論文\源代碼\bin\com\liyulin\hough\line\HoughLine.class
?????文件???????5021??2014-05-25?14:26??源代碼及論文\源代碼\bin\com\liyulin\hough\line\THoughLine.class
?????文件???????1166??2014-05-23?01:12??源代碼及論文\源代碼\bin\com\liyulin\hough\model\LineInfo.class
?????文件????????386??2014-05-21?03:56??源代碼及論文\源代碼\bin\com\liyulin\hough\model\Point.class
?????文件???????4207??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$1.class
?????文件????????735??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$2.class
?????文件???????1579??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$3$1.class
?????文件???????1245??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$3.class
?????文件???????1607??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$4$1.class
?????文件???????1245??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$4.class
?????文件???????1677??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$5$1.class
?????文件???????1994??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$5.class
?????文件???????1610??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$6$1.class
?????文件???????1245??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$6.class
?????文件???????1582??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$7$1.class
?????文件???????1245??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI$7.class
?????文件???????4944??2014-05-23?14:57??源代碼及論文\源代碼\bin\com\liyulin\hough\ui\HoughUI.class
?????文件???????1386??2014-05-21?03:56??源代碼及論文\源代碼\bin\com\liyulin\hough\util\ImagePanel.class
?????文件???????1999??2014-05-25?14:49??源代碼及論文\源代碼\bin\com\liyulin\hough\util\PixelUitl.class
?????文件???????3931??2014-05-25?13:17??源代碼及論文\源代碼\bin\hough\circle\CircleHough.class
............此處省略45個(gè)文件信息
- 上一篇:Java租房管理系統(tǒng)
- 下一篇:模擬退火 基因算法 八皇后問題
評(píng)論
共有 條評(píng)論