我目前正在做心电图分析,为了让事情变得更容易,我认为检测峰值和计算峰值到峰值的距离可能会有很大帮助。如何检测图像中的第一个/峰值黑色像素?
问问题
188 次
1 回答
0
这是您如何做到这一点的解决方案
boolean pf=false,qf=false,rf=false,sf=false,tf=false;
BitmapFactory.Options bitmapFatoryOptions=new BitmapFactory.Options();
bitmapFatoryOptions.inPreferredConfig=Bitmap.Config.RGB_565;
bmp =BitmapFactory.decodeResource(getResources(), R.drawable.test4,bitmapFatoryOptions);
bmp = bmp.copy(bmp.getConfig(), true);
int thresh = 150;
for(int i=0;i<bmp.getWidth();i++){
for(int j=0;j<bmp.getHeight();j++){
int pixel = bmp.getPixel(i, j);
int red = Color.green(pixel);
int green = Color.red(pixel);
int blue = Color.blue(pixel);
if(red<thresh&&green<thresh&&blue<thresh){
if((oldj>=j||p.x==0)&&!pf){
p.x=i;
p.y=j;
}
else{
pf=true;
//Toast.makeText(getApplicationContext(), "told="+oldj, Toast.LENGTH_SHORT).show();
if(pf&&!qf&&(oldj<=j||q.x==0)){
q.x=i;
q.y=j;
//Toast.makeText(getApplicationContext(), "old="+oldj, Toast.LENGTH_SHORT).show();
}
else{
qf=true;
if(!rf&&(oldj>=j||r.x==0)){
r.x=i;
r.y=j;
}
else{
rf=true;
if(!sf&&(oldj<=j||s.x==0)){
s.x=i;
s.y=j;
}
else{
sf=true;
if(!tf&&(oldj>=j||t.x==0)){
t.x=i;
t.y=j;
}
else{
tf=true;
}
}
}
}
}
oldj=j;
oldi=i;
break;
}
}
}
paint(p,bmp);
paint(q,bmp);
paint(r,bmp);
paint(s,bmp);
paint(t,bmp);
}
于 2013-05-09T11:39:48.607 回答