Atitit 圖像處理—圖像形態學(膨脹與腐蝕)html
1.1. 膨脹與腐蝕1java
1.3. 測試原理,能夠給一個5*5pic,測試膨脹算法5ide
說概念可能很難解釋,咱們來看圖,首先是原圖:spa
膨脹之後會變成這樣:htm
腐蝕之後則會變成這樣:blog
看起來可能有些莫名其妙,明明是膨脹,爲何字反而變細了,而明明是腐蝕,爲何字反而變粗了。
實際上,所謂膨脹應該指:
較亮色塊膨脹。
而所謂腐蝕應該指:
較亮色塊腐蝕。
基本原理:
膨脹是圖像形態學的兩個基本操做之一,另一個是腐蝕操做。最典型的應用是在二值圖像
中使用這兩個基本操做,是不少識別技術中重要的中間處理步驟。在灰度圖像中根據閾值同
樣能夠完成膨脹與腐蝕操做。對一幅二值圖像f(x,y)完成膨脹操做,與對圖像的卷積操做類
似,要有個操做數矩陣,最多見的爲3X3的矩陣,與卷積操做不一樣的,是若是矩陣中的像素
點有任意一個點的值是前景色,則設置中心像素點爲前景色,不然不變。
形態學運算中腐蝕,膨脹,開運算和閉運算:
1. 腐蝕是一種消除邊界點,使邊界向內部收縮的過程。
能夠用來消除小且無心義的物體。
腐蝕的算法:
用3x3的結構元素,掃描圖像的每個像素
用結構元素與其覆蓋的二值圖像作「與」操做
若是都爲1,結果圖像的該像素爲1。不然爲0。
結果:使二值圖像減少一圈
2. 膨脹是將與物體接觸的全部背景點合併到該物體中,使邊界向外部擴張的過程。
能夠用來填補物體中的空洞。
膨脹的算法:
用3x3的結構元素,掃描圖像的每個像素
用結構元素與其覆蓋的二值圖像作「與」操做
若是都爲0,結果圖像的該像素爲0。不然爲1
結果:使二值圖像擴大一圈
3. 先腐蝕後膨脹的過程稱爲開運算。
用來消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時並不明顯改變其面積。
4. 先膨脹後腐蝕的過程稱爲閉運算。
用來填充物體內細小空洞、鏈接鄰近物體、平滑其邊界的同時並不明顯改變其面積。
讓咱們來看看其實是怎樣進行膨脹運算的。在圖6.14中,左邊是被處理的圖象X(二值圖象,咱們針對的是黑點),中間是結構元素B。膨脹的方法是,拿B的中心點和X上的點及X周圍的點一個一個地對,若是B上有一個點落在X的範圍內,則該點就爲黑;右邊是膨脹後的結果。能夠看出,它包括X的全部範圍,就象X膨脹了一圈似的。
圖6.13 膨脹的示意圖
圖6.14 膨脹運算
圖6.15爲圖6.11膨脹後的結果圖,可以很明顯的看出膨脹的效果。
粉紅色的方格每次在X/Y前進一個像素方格,就會產生一個新的輸出像素,圖中深藍色的代
表要輸出的像素方格,走徹底部的像素方格,就獲得了全部輸出像素。
圖中,粉紅色的矩陣表示卷積操做數矩陣,黑色表示源圖像– 每一個方格表明一個像素點。
*/
public class ImgGene4test {
public static void main(String[] args) {
BufferedImage dest = new BufferedImage(5,5 ,1);
imgx.setBackgroudColor_White(dest);
dest.setRGB(2, 2, new Color(0,0,0).getRGB());
imgx.save_overwrite(dest, "C:\\00capch\\p5.jpg");
System.out.println("==f");
}
鍵後有個文字加粗的.不過我想這個應該知足不了你的要求.你能夠先把文字柵格化,而後選擇->修改->擴展選區,再進行填充.直到你想要的效果.建議你先把文字作得比你想要的大一點.再進行此操做,獲得你想要效果後再縮小.由於是把選區進行擴展再填充,因此邊邊色起據齒,放大作再縮小這個問題就不會嚴重了.加分加分.
選中文字,在「字符」窗口的左下角,點第一個「T」按鈕,便可變粗,若是還不夠,那就按住ctrl+鼠標單擊文字圖層=》「選擇」=》修改=》擴展,輸入擴展數字肯定=》新建圖層,填充便可
@Override
public BufferedImage filter(BufferedImage src, BufferedImage dest) {
BufferedImage dest2 = imgx.new_BackgroudColor_White(src.getWidth(), src.getHeight());
Matrix mtrx = new Matrix(3, 3).setImg(src);
imgx.trave(src, (x, y) -> {
System.out.println("" + x + ":" + y);
mtrx.fill_and_setMtrx_leftTop_XY(x, y);
boolean mtrx_hasAnyForgeColor = mtrx.hasAnyForgeColor(mtrx_item_color -> {
// dark,,so is forge color.. bkgrd lit..
return (imgx.isDarkColor(imgx.gray(mtrx_item_color)));
});
if (mtrx_hasAnyForgeColor) {
int forgeColor2 = mtrx.getForgeColor();
mtrxCenterXy_inImg = mtrx.getCenterXy();
try {
dest2.setRGB((int) mtrxCenterXy_inImg.get("x"), (int) mtrxCenterXy_inImg.get("y"), forgeColor2);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("ArrayIndexOutOfBoundsException x:" + x + ",y:" + y);
}
}
});
return dest2;
}
圖像處理之二值膨脹及應用 - 流浪的魚 - 博客頻道 - CSDN.NET.html
圖像處理之二值腐蝕 - 流浪的魚 - 博客頻道 - CSDN.NET.html
圖像的膨脹與腐蝕、細化 - 公爵女子 - 博客園.html
純java,不依賴於第三方jar的圖片處理類 - dragonsoar - ITeye技術網站.html
做者:: 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 )
漢字名:艾提拉(艾龍), EMAIL:1466519819@qq.com
轉載請註明來源: http://www.cnblogs.com/attilax/
Atiend