⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageprocess.c

📁 在CCS环境下的一个视频采集源代码
💻 C
字号:
//-----------------------------------------------------------------------------//     Date: 2007/03/30 //	   Description: main.c for slideshow project//-----------------------------------------------------------------------------//#include <xparameters.h>//#include <xio.h>
//#include "sleep.h"
//#include "FileSystem.h"#include "PixelProc.h"
#include "standdef.h"//-----------------------------------------------------------------------------// Global structure definition
GraphicProperty srcbmp[4],destbmp;
unsigned char current;
unsigned char threshold;
unsigned char brightness;
unsigned char contrast;
unsigned char scale;
unsigned char multipic;
unsigned char rotate;
//-----------------------------------------------------------------------------
int imageprocess(){  char s;      // system initialization
//  XCache_EnableDCache(0xF000000F); //  XCache_EnableICache(0xF000000F);

  srcbmp[0].AddressOffset = IMAGE_BASEADDR;
  srcbmp[1].AddressOffset = IMAGE_BASEADDR+0x200000;
  srcbmp[2].AddressOffset = IMAGE_BASEADDR+0x200000*2;
  srcbmp[3].AddressOffset = IMAGE_BASEADDR+0x200000*3;
  destbmp.AddressOffset = IMAGE_BASEADDR+0x200000*4;
  // get source image from CF card//  print("Program running.\r\n");//  get_images(srcbmp);//  print("\r\nReads done.\r\n");  // set TFT_VGA core parameters//  XIo_Out32(VGA_Core_BaseAddrReg, srcbmp[0].AddressOffset);//  XIo_Out32(VGA_Core_EnableReg, 0x1);  // turn on display
  // infinite loop for main function
  do{	
	// wait user command
    s = 'm';//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);

    switch(s) {

    case 'm':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  MirrorProc(&srcbmp[current], &destbmp);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Mirror Effects\r\n");      break;

    case 'f':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  FlipProc(&srcbmp[current], &destbmp);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Flip Effects\r\n");      break;

    case 'i':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  InvertProc(&srcbmp[current], &destbmp);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Invert Effects\r\n");      break;

    case 't':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  threshold = 12;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  ThresholdProc(&srcbmp[current], &destbmp, threshold);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Threshold Effects\r\n");
      break;

    case 'b':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  brightness = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  BrightnessProc(&srcbmp[current], &destbmp, brightness);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Brightness Effects\r\n");
      break;

    case 'c':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  contrast = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  ContrastProc(&srcbmp[current], &destbmp, contrast);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : contrast Effects\r\n");
      break;

    case 's':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  scale = 50;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  if (scale > 100) ZoominProc(&srcbmp[current], &destbmp, scale);
	  else ZoomoutProc(&srcbmp[current], &destbmp, scale);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Scale\r\n");
      break;

    case 'p':
	  multipic = 1;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  MultiPicProc(&srcbmp[0], &destbmp);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Multi-Picture\r\n");
      break;

    case 'r':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  rotate = 50;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
	  RotationProc(&srcbmp[current], &destbmp, rotate);
//      XIo_Out32(VGA_Core_BaseAddrReg, destbmp.AddressOffset);
//	  print("Command : Rotation\r\n");
      break;

    case 'o':
	  current = 0;//XUartLite_RecvByte(XPAR_RS232_UART_1_BASEADDR);
//      XIo_Out32(VGA_Core_BaseAddrReg, srcbmp[current].AddressOffset);
//	  print("Command : Original Picture\r\n");      break;

    default:
//      print("Invalid Command!\r\n");
	  break;
    }

  } while( s != 'q' );

  // main function termination
//  print("\r\nSystem Terminated.\r\n");
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -