图像清晰度检测Brenner

本文详细介绍了Brenner清晰度检测算法的CPU实现,该算法通过计算图像梯度来评估图像清晰度。代码示例展示了如何使用yuv420p图像格式,针对特定区域进行清晰度评分。

清晰度检测算法有多种,下面是清晰度算法Brenner 的实现

#define coordinate_value(YData,x0,y0,w)    (*(YData + x0 + y0 * w))

int brenner_cpu(int x, int y, int w, int h, uint8_t *yData)
{
	int x0, y0, x1, y1;
	double score = 0;

	x0 = 344;
	y0 = 108;
	x1 = 956;
	y1 = 720;

	printf("(x0 y0)=(%d,%d),(x1 y1)=(%d,%d)\n", x0, y0, x1, y1);

	for(int x = x0;x < x1 - 2;x++){

		for(int y = y0;y < y1-2;y++){
			int value = coordinate_value(yData,x,(y+2),1280) - coordinate_value(yData,x,y,1280);
			printf("%d\n",value);
			score += pow(value/ 255.0, 2.0);
		}
	}
	return (int)score;
}

以上代码使用的是yuv420p的图像,1280*720,yData是图像首地址,(x0,y0)(x1,y1)是图像中的上顶点和下顶点,算部分图像的清晰度.

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值