当前位置:编程学习 > JAVA >>

图片处理 求图片处理方面高手 跪求



如图片 有一叠如图物体,想要求出这一叠有多少片,
个人思路如下:
因为每片之间在拍照时 一定会有阴影出现 所以图片RGB颜色会呈现一种波形的图案。
每一列 从上往下 即从0到heigth 在第0行的时候 得到该点像素,ARGB值, 然后顺序往下走,如果该点和保存的点的颜色差值大于某个阀值 则计数器加一 ,保存该点信息。 到最后得到该列的一个片数,保存到一个数组中。
然后循环从0到weigth 即得到每列的片数 。 然后统计数组中出现次数最多的片数 ,作为最可能的结果输出出来。
现在最大问题是 如何计算两个像素 即ARGB之间的差值, 还有阀值如何设定, 不能总是需要手动输入。 求高人解答。
现在用的是R+G+B 但是这种总感觉不准确 而且如果考虑进光线因素的话 阀值如何判断。
附上关键计算的代码:
for(int i=100;i<w-100;i++) //没有从0到weight 是考虑到两边可能会出现干扰。
{
sum=0; //每一列的时候 计数器归零
for(int j=0;j<h;j++)
{
pixrgb=newImage.getRGB(i,j); //newimgae 是个 bufferedimage 。 
c=new Color(pixrgb);
r = c.getRed(); 
g = c.getGreen(); 
b = c.getBlue();
if(Math.abs((r+g+b)-sumrgb)>=143) //如果两者之间的差值(绝对值)大于阀值 
{
sumrgb=r+g+b; //保存该点信息
sum++; //计数器加一
}


}
sum=sum/2;
System.out.print(sum+" ");
pianshu.add(sum); //放到ArrayList中。
} --------------------编程问答-------------------- ..............来个人啊 郁闷赛 --------------------编程问答-------------------- 这是图像处理技术了把 --------------------编程问答-------------------- --------------------编程问答-------------------- 我表示不懂 不知道
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,