经验分享

SDL图形化编程

1 597
不枉倒腾,成功配好了SDL库并写了第一个程序 参照ubuntu下SDL配置

IMG20160901133542.jpg IMG20160901133558.jpg 先分享下喜悦之情,具体关于SDL的学习会在此贴下继续给出。去上课咯
利用codeblocks编程:有效针对opencv与wiringLMK库的结合
1.参考教程http://forum.lemaker.org/cn/forum.php?mod=viewthread&tid=8913(lemaker上配置coldblocks与opencv)
下载codeblocks和opencv
2.安装wiringLMK
先要装git(sudo apt-get install git)
git clone https://github.com/LeMaker/WiringLMK.git
cd WiringLMK
chmod +x ./build
sudo ./build
3.建立空白工程或opencv工程
添加文件
#include<wiringPi.h>
#include<cxcore.h>
#include<cv.h>
#include<highgui.h>
#include<math.h>
int main(int argc, char *argv[])
{
wiringPiSetupPhys();
pinMode(11,OUTPUT);
CvPoint center;
    double scale=-3;
    IplImage* image=argc==2?cvLoadImage(argv[1]):0;
    if(!image)return -1;
    center=cvPoint(image->width/2,image->height/2);
    for(int i=0;i<image->height;i++)
    {for(int j=0;j<image->width;j++)
    {
    double dx=(double)(j-center.x)/center.x;
    double dy=(double)(i-center.y)/center.y;
    double weight=exp((dx*dx+dy*dy)*scale);
    uchar  * ptr =&CV_IMAGE_ELEM(image,uchar,i,j*3);
    ptr[0]=cvRound(ptr[0]*weight);
     ptr[1]=cvRound(ptr[1]*weight);
      ptr[2]=cvRound(ptr[2]*weight);
      digitalWrite(11,HIGH);delay(500);
digitalWrite(11,LOW);delay(500);
    }
    cvSaveImage("copy.png",image);
    cvNamedWindow("test",1);
    cvShowImage("test",image);
    cvWaitKey();
    return 0;
    }
return 0;

}
4.配置连接库
project->buildoptions->linker settings
添加usr/lib目录中有关wiringLMK和opencv的.so文件
project->buildoptions->search dir->compiler中添加
捕获.PNG
再在linker中添加usr/lib
5编译工程
6.点运行后并不能直接运行,个人认为这是codeblocks与图形界面自身的原因
当然也期望有人能解决这个问题
捕获1.PNG
昨天在编译运行工程的时候就发现这个bug,没找到在codeblocks上运行的方案,
这时候利用控制台把工程目录bin下的程序利用sudo ./   运行
如图
IMG20160903141932.jpg
这是在pin11引脚接的led闪烁好久之后 生成lena.png的情景。



您需要登录后才可以回帖 登录 | 注册

本版积分规则