|
楼主 |
发表于 2014-4-8 19:33:12
|
显示全部楼层
遍历整个图片像素点,求出四个非255极值(X最大,X最小,Y最大,Y最小),然后你就找到了四个边界,然后用掩码图像处理就可以剪切出图像。
我现在进行的代码是:
IplImage *pImg=cvLoadImage("1.jpg",1); //加载图片
if (pImg==0)
{
printf("Can't find the picture!\n"); //不能载入
}
else
{
printf("Can find the image!\n"); //成功载入
cvNamedWindow("Image",1);
cvShowImage("Image",pImg);
cvWaitKey(0);
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
}
获取图像像素:
CvScalar s;
for(i=0;i<pImg->height;i++)
{
for(j=0;j<pImg->width;j++)
{
s=cvGet2D(pImg,i,j);
printf("B=%f, G=%f, R=%f ",s.val[0],s.val[1],s.val[2]);
s.val[0]=180;
s.val[1]=90;
s.val[2]=0; //就是图中这蓝色的RGB值
cvSet2D(pImg,i,j,s);
}
}
下面我想找到蓝色部分左上角第一个点(蓝色部分最小的i和最小的j),和右下角(蓝色部分最大的像素点i和最大的j),请大家帮帮忙?往后怎么提取呢,然后用矩形ROI可以截取剪切出想要的蓝色部分。请大家贴个代码出来,谢谢了 |
|