我在例程video_preview的程序上改的。以下是我的部分程序
/* loop forever performing video capture and display */
while ( status == 0 ) {
/* grab a fresh video input frame */
FVID_exchange(hGioVpfeCcdc, &frameBuffPtr);
for(y=0;y<height;y++)
for(x=0;x<width;x++)
{
frameBuffPtr->frame.iFrm.y1[y * 1440 + x * 2] = 128;
c=frameBuffPtr->frame.iFrm.y1[y * 1440 + x * 2+1];
for(b=0;b<height;b++)
for(a=0;a<width;a++)
{
if(frameBuffPtr->frame.iFrm.y1[b * 1440 + a * 2+1]<= c)
c=frameBuffPtr->frame.iFrm.y1[b * 1440 + a * 2+1];
}
if(frameBuffPtr->frame.iFrm.y1[y * 1440 + x * 2+1]==c)
frameBuffPtr->frame.iFrm.y1[y * 1440 + x * 2+1]=0;
}
/* display the video frame */
FVID_exchange(hGioVpbeVid0, &frameBuffPtr);
我基于的是YCRCB。其实就是想将摄像头捕捉到画面里亮度最大的地方,所以为了表现出来就想把那部分的亮度全改为0,这样好观察下效果。结果出来的图像时钟是卡着的,没法动,更别提效果了。因为我也没学过图像处理,可能对这方面有所不足,特向各位请教。
|