opencv实现字符的垂直投影

垂直投影:二维图像按照行向y轴方向上的投影。

程序中有两次注意事项:

先设置感兴趣的区域cvSetImageROI,在cvcopy。

核心代码:

void getVertical(IplImage *src,CvRect ROI,int *v)
{

	FILE *p;
	p = fopen("d:\\b.txt","w+");

	IplImage *image = cvCreateImage(cvSize(ROI.width,ROI.height),8,1);
	cvSetImageROI(src,ROI);
	cvCopy(src,image);
	cvThreshold(image,image,100,255,CV_THRESH_BINARY);
	int x,y;
	CvScalar s;
	for(x=0;x<image->width;x++)
		for(y=0;y<image->height;y++ )
		{
			s=cvGet2D(image,y,x);
			if(s.val[0] == 0)
				v[x]++;
		}
		for(x=0;x<image->width;x++)
		{
			cout<<v[x]<<endl;
			fprintf(p,"%10d",v[x]);
			
		}
		fclose(p);
}
int main()
{
	IplImage *img = cvLoadImage("templ_9.jpg",0);
	cvNamedWindow("orignal",0);
	cvShowImage("orignal",img);
	CvRect ROI;
	ROI.x = 75;
	ROI.y = 10;
	ROI.width= 25;
	ROI.height = 30;
	int v[100] = {0};
	getVertical(img,ROI,v);
	cvWaitKey(0);
	cvDestroyWindow("origanl");
	cvReleaseImage(&img);

	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值