久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6097|回復: 8
收起左側

OV7670識別紅色鎖定并串口傳回坐標

  [復制鏈接]
ID:235784 發表于 2017-9-26 15:09 | 顯示全部樓層 |閱讀模式
        本實驗開機后,先初始化攝像頭模塊(OV7670),如果初始化成功,則在LCD模塊上面顯示攝像頭模塊所
        拍攝到的內容。我們可以通過KEY0設置光照模式(5種模式)、通過KEY1設置色飽和度,通過KEY_UP設置
        對比度,通過TPAD設置特效(總共7種特效)。通過串口,我們可以查看當前的幀率(這里是指LCD顯示的
        幀率,而不是指OV7670的輸出幀率),同時可以借助USMART設置OV7670的寄存器,方便大家調試。DS0指
        示程序運行狀態。另外,本實驗可以借助USMART調試,調用SCCB_RD_Reg和SCCB_WR_Reg等函數,實現OV7670
        寄存器讀寫.
單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. #include "string.h"
  8. #include "ov7670.h"
  9. #include "tpad.h"
  10. #include "timer.h"
  11. #include "exti.h"
  12. #include "usmart.h"
  13. #include "EasyTracered.h"

  14. /************************************************
  15. 攝像頭OV7670 實驗
  16. ************************************************/


  17. const u8*LMODE_TBL[5]={"Auto","Sunny","Cloudy","Office","Home"};                                                        //5種光照模式            
  18. const u8*EFFECTS_TBL[7]={"Normal","Negative","B&W","Redish","Greenish","Bluish","Antique"};        //7種特效
  19. extern u8 ov_sta;        //在exit.c里 面定義
  20. extern u8 ov_frame;        //在timer.c里面定義                 
  21. u16 r,y;
  22. u16 s,z;
  23. //更新LCD顯示
  24. void camera_refresh(void)
  25. {
  26.   
  27.         RESULT Resured;//判定為的目標條件
  28.   TARGET_CONDI Conditionred={215,240,20,240,30,160,30,30,320,240};        //紅色1   API參數  hsl的閾值,識別時用的
  29.         u32 j;
  30.         u16 color;         
  31.         if(ov_sta)//有幀中斷更新?
  32.         {
  33.                 LCD_Scan_Dir(U2D_L2R);                //從上到下,從左到右  
  34.                 if(lcddev.id==0X1963)LCD_Set_Window((lcddev.width-240)/2,(lcddev.height-320)/2,240,320);//將顯示區域設置到屏幕中央
  35.                 else if(lcddev.id==0X5510||lcddev.id==0X5310)LCD_Set_Window((lcddev.width-320)/2,(lcddev.height-240)/2,320,240);//將顯示區域設置到屏幕中央
  36.                 LCD_WriteRAM_Prepare();     //開始寫入GRAM       
  37.                 OV7670_RRST=0;                                //開始復位讀指針
  38.                 OV7670_RCK_L;
  39.                 OV7670_RCK_H;
  40.                 OV7670_RCK_L;
  41.                 OV7670_RRST=1;                                //復位讀指針結束
  42.                 OV7670_RCK_H;
  43.                 for(j=0;j<76800;j++)
  44.                 {
  45.                         OV7670_RCK_L;
  46.                         color=GPIOC->IDR&0XFF;        //讀數據
  47.                         OV7670_RCK_H;
  48.                         color<<=8;  
  49.                         OV7670_RCK_L;
  50.                         color|=GPIOC->IDR&0XFF;        //讀數據
  51.                         OV7670_RCK_H;
  52.                         LCD->LCD_RAM=color;   
  53.                 }   

  54.      if(Trace(&Conditionred,&Resured) )                      //API
  55.                         {                               
  56.                                 LCD_Fillred(Resured.x-Resured.w/2,Resured.y-Resured.h/2,Resured.x+Resured.w/2,Resured.y-Resured.h/2+1,0xf800);//u16 x,u16 y,u16 width,u16 hight,u16 Color
  57.                                 LCD_Fillred(Resured.x-Resured.w/2,Resured.y-Resured.h/2,Resured.x-Resured.w/2+1,Resured.y+Resured.h/2,0xf800);
  58.                                 LCD_Fillred(Resured.x-Resured.w/2,Resured.y+Resured.h/2,Resured.x+Resured.w/2,Resured.y+Resured.h/2+1,0xf800);
  59.                                 LCD_Fillred(Resured.x+Resured.w/2,Resured.y-Resured.h/2,Resured.x+Resured.w/2+1,Resured.y+Resured.h/2,0xf800);
  60.                                 LCD_Fillred(Resured.x-2,Resured.y-2,Resured.x+2,Resured.y+2,0xf800);
  61.        
  62.                                   //LED1=!LED1;
  63.                                   r=Resured.x;
  64.                                   y=Resured.y;
  65.                         }               
  66.                 printf("%d  %d\t ",r,y);
  67.                 ov_sta=0;                                        //清零幀中斷標記
  68.                 ov_frame++;
  69.                 LCD_Scan_Dir(DFT_SCAN_DIR);        //恢復默認掃描方向
  70.         }
  71. }          


  72. int main(void)
  73. {         

  74.         u8 lightmode=0,saturation=2,contrast=2;
  75.         u8 effect=0;         
  76.         u8 i=0;            
  77.         u8 msgbuf[15];                                //消息緩存區
  78.         u8 tm=0;

  79.         delay_init();                     //延時函數初始化          
  80.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  81.         uart_init(76800);                 //串口初始化為 115200
  82.         usmart_dev.init(72);                //初始化USMART               
  83.         LED_Init();                                          //初始化與LED連接的硬件接口
  84.         KEY_Init();                                        //初始化按鍵
  85.         LCD_Init();                                           //初始化LCD  
  86.         TPAD_Init(6);                                //觸摸按鍵初始化
  87.         POINT_COLOR=RED;                        //設置字體為紅色
  88.         LCD_ShowString(30,50,200,16,16,"ELITE STM32F103 ^_^");       
  89.   LCD_ShowString(30,210,200,16,16,"OV7670 Init...");          
  90.         while(OV7670_Init())//初始化OV7670
  91.         {
  92.                 LCD_ShowString(30,210,200,16,16,"OV7670 Error!!");
  93.                 delay_ms(200);
  94.             LCD_Fill(30,210,239,246,WHITE);
  95.                 delay_ms(200);
  96.         }
  97.         LCD_ShowString(30,210,200,16,16,"OV7670 Init OK");
  98.         delay_ms(1500);                   
  99.         OV7670_Light_Mode(lightmode);
  100.         OV7670_Color_Saturation(saturation);
  101.         OV7670_Contrast(contrast);
  102.         OV7670_Special_Effects(effect);         
  103.        
  104.         TIM6_Int_Init(10000,7199);                        //10Khz計數頻率,1秒鐘中斷                                                                          
  105.         EXTI8_Init();                                                //使能定時器捕獲
  106.         OV7670_Window_Set(12,176,240,320);        //設置窗口          
  107.           OV7670_CS=0;                       
  108.         LCD_Clear(BLACK);                                                          
  109.         while(1)
  110.         {       
  111.          
  112.                 camera_refresh();//更新顯示
  113.                 if(tm)
  114.                 {
  115.                         LCD_ShowString((lcddev.width-240)/2+30,(lcddev.height-320)/2+60,200,16,16,msgbuf);
  116.                         tm--;
  117.                 }
  118.                 i++;
  119.                 if(i==15)//DS0閃爍.
  120.                 {
  121.                         i=0;
  122.                         LED0=!LED0;
  123.                 }
  124.         }          
  125. }
復制代碼

所有資料51hei提供下載:
識別紅色鎖定并串口傳回坐標.rar (393.5 KB, 下載次數: 81)


評分

參與人數 1黑幣 +30 收起 理由
yanyuwei + 30 絕世好帖!

查看全部評分

回復

使用道具 舉報

ID:218686 發表于 2017-10-10 15:58 | 顯示全部樓層
我請教下hls設定顏色閾值怎么  設置 如果要藍色 它的閾值怎么算
回復

使用道具 舉報

ID:218686 發表于 2017-10-10 15:59 | 顯示全部樓層
你好 請教下 你這個hls 顏色閾值怎么設定的  若為藍色呢
回復

使用道具 舉報

ID:164146 發表于 2018-7-9 10:57 | 顯示全部樓層
你好 請教下 你這個hls 顏色閾值怎么設定的  若為藍色呢
回復

使用道具 舉報

ID:138247 發表于 2019-5-2 15:21 | 顯示全部樓層

謝謝樓主分享。。。。
回復

使用道具 舉報

ID:410445 發表于 2019-7-29 13:37 | 顯示全部樓層
其它顏色這么追蹤?
回復

使用道具 舉報

ID:562420 發表于 2019-8-5 17:24 | 顯示全部樓層
請問如何把追蹤的顏色坐標發回來?顯示出來
回復

使用道具 舉報

ID:542954 發表于 2019-8-10 12:03 | 顯示全部樓層
電賽選手?共勉
回復

使用道具 舉報

ID:585455 發表于 2019-8-18 23:33 | 顯示全部樓層
感謝無私分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品视频在线观看一区二区三区 | 久久久69| 免费看爱爱视频 | 天天综合网天天综合 | 亚洲国产精品一区二区www | 九九热精 | 精品视频在线免费观看 | 紧缚调教一区二区三区视频 | 大乳boobs巨大吃奶挤奶 | 国产一级视频在线播放 | 奇米影视在线 | www.久久 | 国产精品久久久久久婷婷天堂 | 国产免费让你躁在线视频 | 欧美一级片免费看 | 精品在线免费看 | 欧美精品一区二区三区在线播放 | 欧美激情在线精品一区二区三区 | 午夜av毛片 | 日本久久久久久久久 | 久久国产精品无码网站 | 欧美成人h版在线观看 | 国产欧美在线 | 中文在线一区二区 | 日韩欧美国产综合 | 国产精品美女在线观看 | 国产高清在线观看 | 成人av一区二区亚洲精 | a级黄色片视频 | 亚洲欧洲色视频 | 美女国产精品 | 在线观看精品 | 91成人在线 | 国产精品亚洲一区二区三区在线观看 | 亚洲精品乱码久久久久久按摩观 | 中文字幕亚洲精品 | 亚洲 欧美 另类 综合 偷拍 | 久久一区二区免费视频 | 成人三级在线观看 | 少妇一区在线观看 | 91成人免费观看 |