ImageJ marco internal gradient
2 | 1 | 0 | 1 |
1 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 2 |
3X3的结构元素如图
internal gradient=原图像减结构元素对元素的侵蚀结果
效果如图,左面为原图,右面为效果图
在图片已经导入的情况下可以使用该imageJ marco代码
height=getHeight();
width=getWidth();
new_image=newArray(width*height);
temp=0
for (i=0;i<width;i++){
for (ii=0;ii<height;ii++){
v=getPixel(i,ii);
new_image[temp]=v;
temp+=1;
}
}
for (i=1;i<width-1;i++){
for (ii=1;ii<height-1;ii++){
zerozero=getPixel(i-1,ii-1);
twozero=getPixel(i+1,ii-1);
oneone=getPixel(i,ii);
zerotwo=getPixel(i-1,ii+1);
twotwo=getPixel(i+1,ii+1);
if (zerozero==255 && twozero==255 && oneone==255 && zerotwo==255 && twotwo==255)
new_image[i+ii*width]=255;
else
new_image[i+ii*width]=0;
}}
for (i=0;i<width;i++){
for (ii=0;ii<height;ii++){
v=getPixel(i,ii)-new_image[i+ii*width];
setPixel(i,ii,v);
}
}
还没有评论,来说两句吧...