stm32 ov7670二值化
按照一般步骤
1、先将RGB565颜色转为灰度
grey = (u8)((((color&0x00f100)>>8)*77+((color&0x07e0)>>3)*150+((color&0x001f)<<3)*29+128)/256);//将rgb565转为灰度值
这里我之前转为灰度后就直接在lcd屏上显示 导致整个屏幕只有蓝色,后来才发现原来八位的灰度值必须经过处理后才能用在lcd上,于是有了以下的处理:
color = ((grey >> 3)|((grey & ~3) << 3)|((grey & ~7) << 8));
这下就能正确显示在LCD上了
2、将灰度值按照阈值进行二值化
二值化主要是选取阈值,大于阈值就显示白色,小于则显示黑色,我这里选取阈值为100
if(grey>100){
color = 0xffff;
}else{
color = 0x0000;
}
LCD->LCD_RAM=color;