標(biāo)題: 求助ov7670攝像頭二值化怎么搞 [打印本頁]

作者: s132    時(shí)間: 2017-11-3 20:30
標(biāo)題: 求助ov7670攝像頭二值化怎么搞
求助!!!!
作者: 不忘初心123    時(shí)間: 2018-1-1 13:29
將RGB格式 轉(zhuǎn)換為YUV格式的中的Y值 通過設(shè)置Y值中的 閾值來進(jìn)行二值化
作者: 不忘初心123    時(shí)間: 2018-1-1 13:30
void camera_refresh(void)
{
        u32 j;
        u16 color;
        u8 color_r,color_g,color_b;
       
        if(ov_sta)//有幀中斷更新?
        {
                LCD_Scan_Dir(U2D_L2R);                //從上到下,從左到右  
                if(lcddev.id==0X1963)LCD_Set_Window((lcddev.width-240)/2,(lcddev.height-320)/2,240,320);//將顯示區(qū)域設(shè)置到屏幕中央
                else if(lcddev.id==0X5510||lcddev.id==0X5310)LCD_Set_Window((lcddev.width-320)/2,(lcddev.height-240)/2,320,240);//將顯示區(qū)域設(shè)置到屏幕中央
                LCD_WriteRAM_Prepare();     //開始寫入GRAM       
                OV7670_RRST=0;                                //開始復(fù)位讀指針
                OV7670_RCK_L;
                OV7670_RCK_H;
                OV7670_RCK_L;
                OV7670_RRST=1;                                //復(fù)位讀指針結(jié)束
                OV7670_RCK_H;
                for(j=0;j<76800;j++)
                {
                        OV7670_RCK_L;
                        color=GPIOC->IDR&0XFF;        //讀數(shù)據(jù),低8位
                        OV7670_RCK_H;
                        color<<=8;  
                        OV7670_RCK_L;
                        color|=GPIOC->IDR&0XFF;        //讀數(shù)據(jù),高8位
                        OV7670_RCK_H;
//                        LCD->LCD_RAM=color;
                       
                        color_b=(color>>0)&0x1f;
            color_g=(color>>5)&0x3f;
                color_r=(color>>11)&0x1f;
                                               
                       
//                        從 RGB 到 YUV 空間的 Y 轉(zhuǎn)換公式為:
//              Y = 0.299R+0.587G+0.114B
//             color=(color_r*30+color_g*11+color_b*11+50)/100;

            color=(color_r*38+color_g*75+color_b*15)>>7;         //二值化

                       
             if(color>16)          LCD->LCD_RAM=0xffff;
              else                LCD->LCD_RAM=0x0000;

                }                                                             
                ov_sta=0;                                        //清零幀中斷標(biāo)記
                ov_frame++;
                LCD_Scan_Dir(DFT_SCAN_DIR);        //恢復(fù)默認(rèn)掃描方向
        }
}          
作者: 不忘初心123    時(shí)間: 2018-1-1 13:31
https://www.cnblogs.com/zhangjiansheng/p/6925722.html  RGB轉(zhuǎn)灰度的幾種算法
作者: 不忘初心123    時(shí)間: 2018-1-1 13:31
void camera_refresh(void)
//{
//        u32 j;
//         u16 color;
//        u8 color_r,color_g,color_b;
//       
//        if(ov_sta)//有幀中斷更新?
//        {
//                LCD_Scan_Dir(U2D_L2R);                //從上到下,從左到右  
//                if(lcddev.id==0X1963)LCD_Set_Window((lcddev.width-240)/2,(lcddev.height-320)/2,240,320);//將顯示區(qū)域設(shè)置到屏幕中央
//                else if(lcddev.id==0X5510||lcddev.id==0X5310)LCD_Set_Window((lcddev.width-320)/2,(lcddev.height-240)/2,320,240);//將顯示區(qū)域設(shè)置到屏幕中央
//                LCD_WriteRAM_Prepare();     //開始寫入GRAM       
//                OV7670_RRST=0;                                //開始復(fù)位讀指針
//                OV7670_RCK_L;
//                OV7670_RCK_H;
//                OV7670_RCK_L;
//                OV7670_RRST=1;                                //復(fù)位讀指針結(jié)束
//                OV7670_RCK_H;
//                for(j=0;j<76800;j++)
//                {
//                        OV7670_RCK_L;
//                        color=GPIOC->IDR&0XFF;        //讀數(shù)據(jù),低8位
//                        OV7670_RCK_H;
//                        color<<=8;  
//                        OV7670_RCK_L;
//                        color|=GPIOC->IDR&0XFF;        //讀數(shù)據(jù),高8位
//                        OV7670_RCK_H;
////                        LCD->LCD_RAM=color;
//                       
//                        color_b=(color>>0)&0x1f;
//            color_g=(color>>5)&0x3f;
//                color_r=(color>>11)&0x1f;
//                                               
//                       
////                        從 RGB 到 YUV 空間的 Y 轉(zhuǎn)換公式為:
////              Y = 0.299R+0.587G+0.114B
////             color=(color_r*30+color_g*11+color_b*11+50)/100;
//
//            color=(color_r*38+color_g*75+color_b*15)>>7;         //二值化

//                       
//             if(color>16)          LCD->LCD_RAM=0xffff;
//              else                LCD->LCD_RAM=0x0000;

//                }                                                             
//                 ov_sta=0;                                        //清零幀中斷標(biāo)記
//                ov_frame++;
//                LCD_Scan_Dir(DFT_SCAN_DIR);        //恢復(fù)默認(rèn)掃描方向
//        }
//}          




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1