オセロを作りたいのですが、
OpenCVでカメラから画像を取得し、その画像を縦3,横3の9マスに分けて処理が行われるようにし、
1マスごとの平均画素値を分かるようにしたいです。
その値が
0から60なら 0
60から180なら128
180から255なら255
となるように考え、この中で一番近い画素値の色
白、灰色、黒のどれかになるようにしたいです。
分からないこと
1マスごとの平均画素値の求め方
マスの大きさがうまく分けられていない。
平均がうまくでない。
while(1){
frame=cvQueryFrame(src);
cvCvtColor(frame,imgDst,CV_RGB2GRAY);
cvThreshold(imgDst,imgBinary,127,255,CV_THRESH_BINARY);
//cvSmooth(imgDst,imgFiltagray,CV_GAUSSIAN,3,3);
for(int i=1;i<4;i++){
int width=0,height=0;
for(int y=(i-1)height/3;y<imgDst->height;y++){
for(int x=(i-1)width/3;x<imgDst->width;x++){
int a=imgDst->widthStepy+x;
unsigned char p = imgDst->imageData[a];
ave=ave+imgDst->imageData[a];
/if(ave<80){
imgDst->imageData[a]=0;
}else if(80<=ave&&ave<160){
imgDst->imageData[a]=160;
}else{
imgDst->imageData[a]=255;
}/
}//ave=ave/(heightwidth);
printf("%f\n",ave);
}
}
あなたの回答
tips
プレビュー