飞思卡尔K60摄像头赛道中心线提取问题,求解答

为何我提取的拟合中线发送到上位机上无法显示,求赐教,谢谢啦
void Binarization(void)//二值化函数
{
u8 i,j;
u8 left_line=0,right_line=0;

for(i=0;i<DATALINE;i++)   
{   
    for(j=0;j<DATACOUNT;j++)                       //二值化程序段
    {
      if(ADdata[i][j]>threshold)             
              ADdata1[i][j] = 1;//白色
      else    
              ADdata1[i][j] = 0;//黑色

      //ADdata[30][j]=0x00;//在第20行产生标志线
      //ADdata[50][j]=0x00;//在第80行产生标志线

//uart_putchar(UART0,ADdata1[i][j]);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
for(j=DATACOUNT/2;j>0;j--) //提取黑线
{
if((ADdata1[i][j]==0)&&(ADdata1[i][j-1]==0)&&(ADdata1[i][j-2]==0))
{
left_line = j;
break;
}
else

left_line = 0;
}

    for(j=DATACOUNT/2;j<DATACOUNT;j++)
    {
        if((ADdata1[i][j]==0)&&(ADdata1[i][j+1]==0)&&(ADdata1[i][j+2]==0))
        {
            right_line = j;
            break;
        }
        else   
            right_line = 140;      
    }

Center[i] = (left_line+right_line+1)/2;//确定中心线
Centerline[i][Center[i]]=0;//拟合中心线为黑色
uart_putchar(UART0,Centerline[i][Center[i]]);
}     

}


1个回答

你得先看看算法对这么,有可能是0
和255,不是零合一

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
飞思卡尔智能小车摄像头组
怎么驱动板测出来的电压跟预定值不一样,主板电压没毛病。而且驱动板上的小电源一接电路就很烫,是哪里出了毛病
飞思卡尔K60中的PIT的链模式下CHN寄存器的使用
void PIT_ISR()//中断函数 { static uint32_t i = 0; GPIO_ToggleBit(HW_GPIOE,7);//小灯亮灭指示进入中断 printf("enter interrupt is %d\r\n",i++);//记录进入中断次数 PIT->CHANNEL[2].TFLG |= PIT_TFLG_TIF_MASK; //中断标志位清零 } int main(void) { static uint32_t fac_us = 0; DelayInit(); /* 初始化PE6端口推完输出 */ GPIO_InitTypeDef GPIO_InitStruct1; GPIO_InitStruct1.instance = HW_GPIOE; GPIO_InitStruct1.pinx = 6; GPIO_InitStruct1.mode = kGPIO_Mode_OPP; GPIO_Init(&GPIO_InitStruct1); /* 初始化PE7端口推完输出 */ GPIO_InitTypeDef GPIO_InitStruct2; GPIO_InitStruct1.instance = HW_GPIOE; GPIO_InitStruct1.pinx = 7; GPIO_InitStruct1.mode = kGPIO_Mode_OPP; GPIO_Init(&GPIO_InitStruct2); /* 初始化串口UART0 */ UART_InitTypeDef UART_InitStruct1; UART_InitStruct1.baudrate = 115200; UART_InitStruct1.bitPerChar = kUART_8BitsPerChar; UART_InitStruct1.instance = HW_UART0; UART_InitStruct1.parityMode = kUART_ParityDisabled; UART_Init(&UART_InitStruct1); PORT_PinMuxConfig(HW_GPIOD,6,kPinAlt3); PORT_PinMuxConfig(HW_GPIOD,7,kPinAlt3); printf(" UART0 is ok\r\n"); SIM->SCGC6 |= SIM_SCGC6_PIT_MASK;//打开模块时钟 PIT->MCR &= ~PIT_MCR_MDIS_MASK; //打开模块 PIT->CHANNEL[2].TCTRL = PIT_TCTRL_TIE_MASK;/*打开中断同时清零其余寄存器*/ PIT->CHANNEL[2].TCTRL |= PIT_TCTRL_TEN_MASK;//PIT2定时器使能 PIT->CHANNEL[2].TCTRL |= PIT_TCTRL_CHN_MASK;//寄存器链模式开启 fac_us = GetClock(kBusClock);//读取总线频率 fac_us /= 1000000; PIT->CHANNEL[2].LDVAL = fac_us*1000*1000;//中断周期1S NVIC_EnableIRQ(PIT2_IRQn);//打开中断优先级 PIT->CHANNEL[1].TCTRL |= PIT_TCTRL_TEN_MASK;//PIT1定时器使能 PIT->CHANNEL[1].LDVAL = fac_us*1000*2000;//中断周期2S PIT_CallbackInstall(HW_PIT_CH2,PIT_ISR); //中断回调函数 while(1) { GPIO_ToggleBit(HW_GPIOE,6);//小灯亮灭指示系统运行 DelayMs(500); } } 请问为什么CHN没有起左右,PIT2和PIT1寄存器没有 连在一起,中断的周期时间没有变,还是PIT2的中断周期,求解答求解答
关于飞思卡尔MC9S12G定时中断问题
为什么我如何改TCx寄存器的值定时的时间还是没变?求大神指导 代码如下 #include <hidef.h> /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ unsigned int num,num1; //24M总线周期,指令周期2M //延时1S函数 void delay() { unsigned int a,b; for(a=0;a<2000;a++); for(b=0;b<1000;b++); } void CLOCK_INIT(void); void main(void) { /* put your own code here */ DisableInterrupts; CLOCK_INIT(); //时钟初始化 总线为24M EnableInterrupts; TFLG2_TOF=1;//清标志位 DDRM_DDRM2=1; PTM_PTM2=1; TSCR1_TEN=0;//定时器不使能 TCNT=0x0000; TIOS_IOS0=1;//输出输入选择 TCTL2_OM0=0; TCTL2_OL0=1; TC0=0x8000; TIE_C0I=1; //使能中断 TSCR2=0X00; //不分频 TSCR1_TEN=1;//使能 for(;;) { /* delay(); PTM_PTM2=~PTM_PTM2; delay(); */ if(num==366) { num=0; DDRM_DDRM2=~DDRM_DDRM2; } } /* loop forever */ /* please make sure that you never leave main */ } void CLOCK_INIT(void) { // CPMUPROT_PROT=0; // CPMUCLKS_PLLSEL=1; CPMUOSC_OSCE=1; //选择外部振荡器 CPMUREFDIV_REFFRQ=2; //6M-8M CPMUREFDIV_REFDIV=0; //不分频 Fref=8M CPMUSYNR_SYNDIV=2; // 2*8*(2+1)=48M Fvco=48M CPMUSYNR_VCOFRQ=0; //32M-48M CPMUPOSTDIV_POSTDIV=0;//不分频 Fpll=Fvco=48M Fbus=(Fpll/2)=24M CPMUCLKS_PLLSEL=1; while(CPMUFLG_LOCK!=0);//等待时钟稳定 } #pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 8 aa(void) { num++; TFLG1 = TFLG1_C0F_MASK; TFLG2 = TFLG2_TOF_MASK; } #pragma CODE_SEG DEFAULT
飞思卡尔的P2020上移植bootrom失败
在飞思卡尔的P2020上移植bootrom,从nor flash的0地址开始烧写,bootrom启动失败了,串口没有任何打印。 然后用逻辑分析仪查看,发现从flash的0xFFFFC开始执行指令,只执行了一条指令(BL)和数据,就停止了。 是我flash烧录的位置有问题吗?哪位大牛研究过? 求指点!!! 而且Nor flash和CPU颠倒连接(地址,数据均反)为什么这么做?对移植有什么影响吗?
飞思卡尔MLIB库运用问题
在飞思卡尔官网上说利用MLIB库能让MCU的指令实现高效和快速的数学运算,但是我试了一下,利用MLIB库 MLIB_Mul32SS进行乘法运算,MLIB_Mul32SS(4,5)与直接4*5前者占用空间和执行时间都比后者大,是不是我的用法错了?
飞思卡尔KL25单片机芯片实现流水灯系统
飞思卡尔KL25单片机芯片用C语言实现KL25流水灯系统,如何构思?
嵌入式i.mx28x的新增加的SPI设备驱动怎么修改移植?求大神指导
请问i.MX287或者i.mx28x系列的核心板,新增加一个SPI设备(ZigBee设备,用SPI通信),这个设备的驱动该怎么修改啊?嵌入式新手求大神指导啊,飞思卡尔的资料好少,求啊!
飞思卡尔编译器不能全速运行
# codewarrior 不能全速运行 大家好,本人用的MC9S12S128的飞思卡尔芯片,里面用了简单的定时中断,SCI,下面是源代码。我用的IDE是codewarrior 在运行中有两个现象,1,不能全速运行,只能点一步运行一步。 2,长按f11,在程序运行两个来回以上,拔掉BDM,再上电。程序有可能烧进去了 /*---------------------------------------------------------*/ /************************************************************ ************************************************************/ /*---------------------------------------------------------*/ #include <hidef.h> /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ #define LEDCPU PORTK_PK4 #define LEDCPU_dir DDRK_DDRK4 #define BUS_CLOCK 32000000 //总线频率 #define OSC_CLOCK 16000000 //晶振频率 unsigned char a[56]={0XEB,0X90,0X83}; #define BAUD 38400 //串口波特率 /*************************************************************/ /* 初始化锁相环 */ /*************************************************************/ void INIT_PLL(void) { CLKSEL &= 0x7f; //set OSCCLK as sysclk PLLCTL &= 0x8F; //Disable PLL circuit CRGINT &= 0xDF; #if(BUS_CLOCK == 40000000) SYNR = 0x44; #elif(BUS_CLOCK == 32000000) SYNR = 0x43; #elif(BUS_CLOCK == 24000000) SYNR = 0x42; #endif REFDV = 0x81; //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M PLLCTL =PLLCTL|0x70; //Enable PLL circuit asm NOP; asm NOP; while(!(CRGFLG&0x08)); //PLLCLK is Locked already CLKSEL |= 0x80; //set PLLCLK as sysclk } /*************************************************************/ /*************************************************************/ /* 初始化SCI */ /*************************************************************/ void INIT_SCI(void) { SCI0BD = BUS_CLOCK/16/BAUD; //设置SCI0波特率为9600 SCI0CR1 = 0x00; //设置SCI0为正常模式,八位数据位,无奇偶校验 SCI0CR2 = 0x08; //允许发送数据,禁止中断功能 } /*************************************************************/ /*************************************************************/ /* 串口发送函数 */ /*************************************************************/ void SCI_send(unsigned char data) { while(!SCI0SR1_TDRE); //等待发送数据寄存器(缓冲器)为空 SCI0DRL = data; } /*************************************************************/ /* 串口发送字符串函数 */ /*************************************************************/ void send_string(unsigned char j) { while(j<56) //判断字符串是否发送完毕 { SCI_send(a[j]); } } /*************************************************************/ /*************************************************************/ /* PIT模块初始化函数 */ /*************************************************************/ void init_PIT(){ /* PITMTLD0=249; //为0通道8位计数器赋值 PITLD0=63999; //为0通道16位计数器赋值 //(249+1)*(63999+1)=16000000个总线周期=0.5秒 PITMUX_PMUX0=0; //第0通道使用微计数器0 PITCE_PCE0=1; //第0通道计数器工作 PITCFLMT=0X80; //使能周期中断定时器 PITINTE_PINTE0=1; //0通道定时器定时中断被使能 */ PITCFLMT=0X00; //禁止PIT模块 PITCE_PCE0=1; // 使能定时器通道0 PITMUX=0X00;//定时器通道0使用Base Timer0(微定时基准0) PITMTLD0=0XFF;//设置8位微定时装载寄存器0初值 PITLD0=0XFFFF;//设置16位装载寄存器0初值 //定时周期=(PITMTLD0+1)*(PITLD0+1)*(1/fBUS)=0.52428s PITINTE=0X01;//使能PIT定时器通道0中断 PITCFLMT=0X80;//使能PIT模块 } #pragma CODE_SEG __NEAR_SEG NON_BANKED interrupt void PIT_INTER(void) { unsigned char i; if(PITTF_PTF0==1) { PITTF_PTF0=1; //把1改为0 LEDCPU=~LEDCPU; for (i=0;i=i+1;) { send_string(a[i]); } } } #pragma CODE_SEG DEFAULT /*************************************************************/ /* 主函数 */ /*************************************************************/ void main(void) { INIT_PLL(); LEDCPU_dir=1; //设置 PORTK_PK4为输出脚位 init_PIT(); INIT_SCI(); EnableInterrupts; for(;;) { } }
Android 播放视频线有绿条闪烁
系统是飞思卡尔的Android6.0, 我自己写个小demo播放视频没有问题。 但是客户自己写的apk安装到我们的系统上就出现绿条在闪。 apk里面用到了MediaPlayer,GLES20,SurfaceTexture,还有一个com.badlogic.gdx(好像是什么游戏框架) 注:有的视频会有的视频不会,视频播放时感觉系统比较卡顿![图片说明](https://img-ask.csdn.net/upload/201710/17/1508200445_316910.jpg)![图片说明](https://img-ask.csdn.net/upload/201710/17/1508200470_656315.jpg)
QT+gstreamer,视频不在窗口显示问题
目前采用ARM芯片为飞思卡尔的imx6,该芯片具备VPU,具备硬件加速的能力。在ARM板上安装UBUNTU14系统,桌面为XFCE桌面,安装gstreamer1.0(使用synaptic一键安装)播放器可以流畅播放高清视频。使用QT5.1.2调用gstreamer1.0,视频无法在指定窗口播放,而是全屏播放 代码摘录如下,请指出不能在正确位置播放是否为调用方法问题? Widget::Widget(QWidget *parent) : QWidget(parent) { /* Create the elements */ data->playbin2 = gst_element_factory_make ("playbin", "playbin2"); g_object_set(data->playbin2, "uri", uri.toUtf8().data(), NULL); /* Create the GUI */ createUi(data); /* Instruct the bus to emit signals for each received message, and connect to the interesting signals */ bus = gst_element_get_bus (data->playbin2); } void Widget::createUi (CustomData *data) { setWindowTitle(tr("????????")); setWindowIcon(QIcon(":/new/image/Image/icon_fronware.png")); resize(600,500); setStyleSheet("background-color: white;"); qDebug()<<"CURRENT WIDGET"<<this->winId(); mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(5,5,5,5); mainLayout->setSpacing(5); displayWnd = new VideoWidget; qDebug()<<"1"<<displayWnd->width()<<displayWnd->height(); backgroundWnd = new QLabel; backgroundWnd->setStyleSheet("background-color: black;"); qDebug()<<"2backgroundWnd"<<backgroundWnd->width()<<backgroundWnd->height(); renderWnd = new QStackedWidget; //A = new QGstWidget; renderWnd->addWidget(displayWnd); renderWnd->addWidget(backgroundWnd); renderWnd->setCurrentIndex(0); //qDebug()<<"2"<<displayWnd->width()<<displayWnd->height(); qDebug()<<"2renderWnd"<<renderWnd->width()<<renderWnd->height(); qDebug()<<"3renderWnd"<<this->width()<<this->height(); slider = new QSlider(Qt::Horizontal); slider->setFixedHeight(15); timeLabel = new QLabel; timeLabel->setFixedHeight(15); timeLabel->setStyleSheet("background-color: #ffffff;color:black; font-family:\"STXihei\";font-size: 10px;"); timeLabel->setText("00:00:00/00:00:00"); timeLayout = new QHBoxLayout; timeLayout->setContentsMargins(0,0,0,0); timeLayout->setSpacing(5); timeLayout->addWidget(slider,5); timeLayout->addWidget(timeLabel,1); infoLabel = new QLabel; infoLabel->setFixedHeight(25); infoLabel->setStyleSheet("background-color: white;color:black; font-family:\"STXihei\";font-size: 15px;"); openBtn = new QPushButton; openBtn->setFixedSize(75,25); openBtn->setText("????"); openBtn->setStyleSheet(" QPushButton{border: 1px solid #C0C0C0; \ background-color: white;\ border-style: solid;\ border-radius:0px;\ color:black;\ font-family:\"STXihei\";\ font-size: 15px;\ padding:0 0px;\ margin:0 0px;\ }\ QPushButton:hover{border: 1px solid #C0C0C0; \ background-color: #ececec;\ border-style: solid;\ border-radius:0px;\ color:black;\ font-family:\"STXihei\";\ font-size: 15px;\ padding:0 0px;\ margin:0 0px;\ }\ "); startBtn = new QPushButton; startBtn->setFixedSize(45,25); startBtn->setText("??"); startBtn->setStyleSheet(openBtn->styleSheet()); stopBtn = new QPushButton; stopBtn->setFixedSize(45,25); stopBtn->setText("??"); stopBtn->setStyleSheet(openBtn->styleSheet()); plauseBtn = new QPushButton; plauseBtn->setFixedSize(45,25); plauseBtn->setText("??"); plauseBtn->setStyleSheet(openBtn->styleSheet()); plauseBtn->setVisible(false); muteButton = new QToolButton; muteButton->setFixedSize(45,25); muteButton->setIcon(style()->standardIcon(QStyle::SP_MediaVolume)); volumeSlider = new QSlider(Qt::Horizontal); volumeSlider->setFixedSize(60,15); volumeSlider->setRange(0,100); buttonLayout = new QHBoxLayout; buttonLayout->setContentsMargins(0,0,0,0); buttonLayout->setSpacing(15); buttonLayout->addStretch(); buttonLayout->addWidget(openBtn); buttonLayout->addWidget(startBtn); buttonLayout->addWidget(plauseBtn); buttonLayout->addWidget(stopBtn); buttonLayout->addWidget(muteButton); buttonLayout->addWidget(volumeSlider); buttonLayout->addStretch(); mainLayout->addWidget(renderWnd,5); mainLayout->addWidget(infoLabel,1); mainLayout->addLayout(timeLayout); mainLayout->addLayout(buttonLayout); qDebug()<<"3"<<displayWnd->width()<<displayWnd->height(); realize_cb(displayWnd,data); connect(openBtn,SIGNAL(clicked()),this,SLOT(slotOpenButtonClicked())); connect(startBtn,SIGNAL(clicked()),this,SLOT(slotPlayButtonClicked())); connect(plauseBtn,SIGNAL(clicked()),this,SLOT(slotPaluseButtonClicked())); connect(stopBtn,SIGNAL(clicked()),this,SLOT(slotStopButtonClicked())); connect(displayWnd,SIGNAL(fullScreenSignal(bool)),this,SLOT(slotFullScreen(bool))); connect(muteButton,SIGNAL(clicked()),this,SLOT(slotmuteButtonClicked())); connect(volumeSlider,SIGNAL(sliderMoved(int)),this,SLOT(slotVolumeChange(int))); slider->setRange(0,100); volumeSlider->setValue(50); data->slider = slider; connect(slider,SIGNAL(sliderMoved(int)),this,SLOT(seek(int))); data->streams_list = infoLabel; qDebug()<<"4"<<displayWnd->width()<<displayWnd->height(); } void Widget::realize_cb(QWidget *widget, CustomData *data) { guintptr window_handle; window_handle = (guintptr)(widget->winId()); gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(data->playbin2),window_handle); } void Widget::playButtonClicked(QPushButton *button, CustomData *data) { Q_UNUSED(button); GstStateChangeReturn ret; ret = gst_element_set_state (data->playbin2, GST_STATE_PLAYING); }
在工控机下正常执行的串口液晶测试程序,到arm平台下不能正常执行
串口液晶屏在工控机上测试程序可行,到开发板上不行? 串口液晶使用的是SLCM19264 工控机系统为unbuntu10.04,编译器gcc 开发板为arm的xm31平台,交叉编译器arm-none-linux-gnueabi-gcc 程序如下 #include <stdio.h> #include <string.h> #include <sys/types.h> #include <errno.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <termios.h> #include <stdlib.h> int fd; static void uart_set(int fd, int baud, int databits, char parity, int stopbits) { struct termios opt; tcgetattr (fd, &opt); opt.c_cflag |= (CLOCAL | CREAD); printf("ispeed = %d\n", cfgetispeed(&opt)); printf("ospeed = %d\n", cfgetospeed(&opt)); switch (baud) { case 9600: cfsetispeed(&opt, B9600); cfsetospeed(&opt, B9600); break; case 19200: cfsetispeed(&opt, B19200); cfsetospeed(&opt, B19200); break; case 57600: cfsetispeed(&opt, B57600); cfsetospeed(&opt, B57600); break; case 115200: cfsetispeed(&opt, B115200); cfsetospeed(&opt, B115200); break; default: cfsetispeed(&opt, B115200); cfsetospeed(&opt, B115200); break; } opt.c_cflag &= ~CSIZE; switch (databits) { case 7: opt.c_cflag |= CS7; break; case 8: opt.c_cflag |= CS8; break; default: printf ("Unsupported data size\n"); return; } switch (parity) { case 'n': case 'N': opt.c_cflag &= ~PARENB; break; case 'o': // odd case 'O': opt.c_cflag |= (PARODD | PARENB); //opt.c_iflag |= INPCK; break; case 'e': // even case 'E': opt.c_cflag |= PARENB; opt.c_cflag &= ~PARODD; //opt.c_iflag |= INPCK; break; case 's': //space case 'S': opt.c_cflag &= ~PARENB; opt.c_cflag &= ~CSTOPB; break; default: printf ("Unsupported parity\n"); return; } switch (stopbits) { case 1: opt.c_cflag &= ~CSTOPB; break; case 2: opt.c_cflag |= CSTOPB; break; default: printf ("Unsupported stop bits\n"); return; } opt.c_cc[VTIME] = 0; opt.c_cc[VMIN] = 0; // set raw input opt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); opt.c_iflag &= ~(INLCR | ICRNL | IGNCR); // set raw output opt.c_oflag &= ~OPOST; opt.c_oflag &= ~OLCUC; opt.c_oflag &= ~ONLRET; opt.c_oflag &= ~ONOCR; opt.c_oflag &= ~OCRNL; tcsetattr (fd, TCSANOW, &opt); printf("ispeed = %d\n", cfgetispeed(&opt)); printf("ospeed = %d\n", cfgetospeed(&opt)); tcflush(fd, TCOFLUSH); tcflush(fd, TCIFLUSH); } void Display_info() { printf("%s\n", __FUNCTION__); int ret; char *s = "?"; char c = 0x3F; char c2 = 0x0D; char c3 = 0x72; char c4 = 0x65; char c5 = 0x73; ret = write(fd, &c, 1); ret = write(fd, &c, 1); ret = write(fd, &c, 1); ret = write(fd, &c2, 1); printf("write ok\n"); //ret = write(fd, "???", 3); //ret = write(fd, "\r", 1); usleep(DISPLAY_DELAY); } int main(int argc, char **argv) { int nread,i; int nwrite; unsigned char buff[1024] = {0}; if (argc == 1) { if((fd=open_port(1, "/dev/ttyS0"))<0) { perror("open_port error"); return -1; } } else { if((fd=open_port(1, argv[1]))<0) { perror("open_port error"); return -1; } } printf("fd = %d\n", fd); uart_set(fd, 19200, 8, 'n', 1); while(1) { //Display_Menu(); Display_info(); usleep(2000000); printf("ready read\n"); nread = read(fd,buff,1024); printf("read ok\n"); printf("nread=%d,%s\n",nread,buff); } close(fd); return 0; } 状况是运行程序后,write没有写进去,read返回nread = 0(类似没有在串口接入任何东西的状态) 已经做过的测试: 1.应用程序 用已有的程序实验,在工控机上无问题(液晶屏,应用程序无错) 2.驱动 短接2,3,发现输出,输入无问题(接口,驱动无错) 怀疑:连线问题 结果:线序错了 3.还是无反应 链接液晶屏端串口rt端口 自测有效,排除线的问题。 请问哪位大神知道还有可能是什么问题导致的现在这种情况???
IAR如何安装其他工作环境
我以前在做zigbee的时候安装过IAR,现在需要参加飞思卡尔的竞赛但IAR只能创建8051的工作环境,求大神知道如何才能为IAR安装ARM的工作环境?![图片说明](https://img-ask.csdn.net/upload/201711/17/1510889523_659744.png)
在Qt中编译带Qwt的ARM程序时总是提示 cannot find -lqwt
我编译Qt的ARM程序就不会报错,而且编译的程序能够顺利在ARM板子上运行,但是只要一加上Qwt就会报错,总是说找不到libqwt.so文件,但是我已经指定了路径了,而且设置了环境变量,它还是提示说找不到。这是怎么回事呢。连在Ubuntu上编译都编译不过,更别说在板子上运行了。下面是我Qt中配置的工具链![报错信息](https://img-ask.csdn.net/upload/201711/11/1510370611_736004.jpg) ![飞思卡尔的板](https://img-ask.csdn.net/upload/201711/11/1510370639_666595.jpg) ![使用Kits-mx6编译](https://img-ask.csdn.net/upload/201711/11/1510370647_398030.jpg) 以上配置如果没有用到qwt是没问题的,能够在板上运行,只要一用到qwt就提示找不到库文件。这问题折腾了我几天了。要醉了
C# picturebox显示的图片会被模糊化
就像下图那样 ![图片说明](https://img-ask.csdn.net/upload/201703/06/1488806184_714690.png) 而我想要实现的效果是这样 ![图片说明](https://img-ask.csdn.net/upload/201703/06/1488806229_146548.png) 望大神指导,拜托了!!!
MKL46Z 程序运行一段时间出现死在HardFault_hander
如题,在主循环里运行了一段时间后,死了,发现是在HardFault____hander,show caller code下,跳到了一个我根本没有调用的函数里面,是咋回事?
IMX6ARM平台gstreamer视频始终全屏播放
目前采用ARM芯片为飞思卡尔的imx6,该芯片具备VPU,具备硬件加速的能力。在ARM板上安装UBUNTU系统,桌面为XFCE桌面/KDE桌面/GNOME桌面(都尝试了),安装gstreamer1.0播放器可以流畅播放高清视频。但是使用QT调用gstreamer后,无法在QTwidget上播放,而是全屏播放。 另外使用gst-launch-1.0 filesrc location=/home/chipsee/haihang.flv ! decodebin ! videoconvert ! video/x-raw,width=1280,height=720,framerate=30/1 ! imxipuvideosink无法修改画面尺寸。。 请问:使用gst-launch-1.0要想修改最后画面尺寸应该用什么完整命令?无法像VLC一样在QTwindget上指定窗口播放跟调用方法是否有关,提出宝贵建议
imx6arm平台安装VLC未能调用硬件加速
项目描述: 目前采用ARM芯片为飞思卡尔的imx6,该芯片具备VPU,具备硬件加速的能力。在ARM板上安装UBUNTU14系统,桌面为XFCE桌面,安装gstreamer1.0播放器可以流畅播放高清视频。在ARM开发板上登陆VLC官网安装VLC2.1.6/vlc2.1.2播放器,播放视频卡顿,只能出现第一帧画面。打开VLCVA-API硬件加速没任何效果。后续了解到VLC,目前只对intelGPU nvidiaGPU这些设备提供了硬件加速接口,类似的硬件加速模块式VAAPI,VDPAU,DXVA等都不适用ARM开发板。。我们是想继续用VLC+ffmpeg这样的框架,其他平台都是这个框架。在上述硬件平台上如何才能使VLC进行硬件加速。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问