1. 周一遇到的问题:在windows下遇到的情况是:

如果我在学习的情况下,直接编译(不正常退出),那么第二次重新编译,运行,运行到camera_open 的时候就会

报错。 只能重新插拔一下才能解决掉这个问题。basler 的相机群里,有人给的建议是加一个断电重连的操作。

我看了一下,需要一个类,就没有加。后来直接在 baslercamer的.cpp 文件下面加了:

class CHeartbeatHelper
{public:explicit CHeartbeatHelper(CInstantCamera& camera): m_pHeartbeatTimeout(NULL){// m_pHeartbeatTimeout may be NULLm_pHeartbeatTimeout = camera.GetTLNodeMap().GetNode("HeartbeatTimeout");}bool SetValue(int64_t NewValue){// Do nothing if no heartbeat feature is available.if (!m_pHeartbeatTimeout.IsValid())return false;// Apply the increment and cut off invalid values if neccessary.int64_t correctedValue = NewValue - (NewValue % m_pHeartbeatTimeout->GetInc());m_pHeartbeatTimeout->SetValue(correctedValue);return true;}bool SetMax(){// Do nothing if no heartbeat feature is available.if (!m_pHeartbeatTimeout.IsValid())return false;int64_t maxVal = m_pHeartbeatTimeout->GetMax();return SetValue(maxVal);}protected:GenApi::CIntegerPtr m_pHeartbeatTimeout; // Pointer to the node, will be NULL if no node exists.
};

在init 下面加了:

CHeartbeatHelper headbeatHelper(*m_camera);
headbeatHelper.SetValue(1000);

解决了 不正常退出,在连摄像头就open 不了的情况。

2。 周二是三八节 上午想起来看一下 break,continue 跟return 的区别在哪里。

http://blog.chinaunix.net/uid-27007072-id-3345092.html

break 是跳出循环,continue 是跳出本次循环。return 是退出函数

int Picture(float *)

{

while(1){

for(i=0;i<10;i++)

{

if()

{

if()

{

break;   // 直接退出

contine;

return;

}

}

}// break 和continue; 都是跳出到这儿。

}//end while

}// end function     // return 是出来这儿。

3. 把程序移植到 linux 下,出现的现象是 摄像头时好时不好。

这个bug 比较隐蔽---调试了1天半。 主要是设置的numROI=2 实际上我只初始化了一个。

导致摄像头有时候能正常工作,很多的时候只能显示一半。

调试这个bug,我接受了,技术支持的建议,就是getData 之后的图片打印出来,如果这部分是完整的,说明得到      的数据是对的。

4.  这个bug 好像还有,但是后来我怎么都找不到了。 是在

void gethistArray(IplImage *src,IplImage *msk, float fea[24])
{IplImage* r_plane = cvCreateImage(cvGetSize(src),8,1);IplImage* g_plane = cvCreateImage(cvGetSize(src),8,1);IplImage* b_plane = cvCreateImage(cvGetSize(src),8,1);cvCvtPixToPlane(src,b_plane,g_plane,r_plane,0);//openCV里面的一个函数,可以看作cvSplit是他的宏:#define cvCvtPixToPlane cvSplit //注意顺序为BGR,OpenCV中不管是Windows中Load的还是摄像头取得的都是BGR顺序排列的//计算直方图//int h_bins = 100,s_bins = 32;int hist_size = 8;float range[] = {1,255};float* ranges[] = {range};CvHistogram* r_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1);CvHistogram* g_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1);CvHistogram* b_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1);int width_src=r_plane->width;int height_src=r_plane->height;for (int row=0;row<height_src;row++)for(int col=0;col<width_src;col++){if((msk->imageData[row*height_src+col])<250){r_plane->imageData[row*height_src+col]=0;g_plane->imageData[row*height_src+col]=0;b_plane->imageData[row*height_src+col]=0;}}cvCalcHist(&r_plane,r_hist,0,0);cvCalcHist(&g_plane,g_hist,0,0);cvCalcHist(&b_plane,b_hist,0,0);for(int i = 0;i<hist_size;i++){float bin_val = cvQueryHistValue_1D(r_hist,i);fea[i] = bin_val;}for(int i = 0;i<hist_size;i++){float bin_val = cvQueryHistValue_1D(g_hist,i);fea[i + 8] = bin_val;}for(int i = 0;i<hist_size;i++){float bin_val = cvQueryHistValue_1D(b_hist,i);fea[i + 16] = bin_val;}cvReleaseHist(&r_hist);  // 下面新加上去的cvReleaseHist(&g_hist);
cvReleaseHist(&b_hist);cvReleaseImage(&r_plane);cvReleaseImage(&g_plane);cvReleaseImage(&b_plane);
}

调试的方法是 gdb ./Main

run

然后想办法让程序报错。

然后 backtrace  能看到在程序的那一个函数里面报错的。

然后我们在这个函数里面加打印语句,确认是哪个函数哪里报错的。

显示是cvSplit 这个函数报错了。但是后来这个错误就不出来了。

4. 打包.SO 的时候出现

error adding symbols: 错误的值

错误原因是:修改makefile
          编译动态库的时候    --fPIC
       gcc --fPIC -shared XXXXX -o XX XXXX

5。打包的.so 怎么被调用:

把.so  像opencv 的。so一样编译就可以了。在 下面放上所有的.h 文件

重新make

6。把 test_so 放到工控机下去测试,出现的问题是:

在当前的目录下找不到 bobbin.so

可是我的相应目录下明明有  bobbin.so

使用: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

把寻找。so 的文件放在当前目录下。

使用 ldd  Main  看看需要的。so 文件是不是都在这个目录下

发现opencv_core.so.2.4 不在这个目录下。

解决方法是: 在LZQ的电脑下使用locate  opencv_core.so.2.4  可以找到所有opencv_core.so.2.4 的路径。

把缺少的。so 文件copy 到工控机下。

执行./Main 报错 :bus error

目前bus error 无解 。目前我正在装我电脑的ububtu 看移植到ubuntu 下是不是相同的问题。

GOD bless me

basler 相机使用出现的问题相关推荐

  1. Basler相机Pylon4配置VC++6.0

    以前都是用到大恒相机,今天要配置两个Basler相机使用,记录一下过程 配置:VC++6.0,Basler相机 1,点击工程->设置 2,C/C++,Y分类选择Preprocessor 3,包含 ...

  2. basler相机 ip linux,Linux环境中连接Basler相机(Pylon软件的安装),ROS环境中连接Basler相机...

    一 .在Linux操作系统中安装Pylon软件 1.Pylon下载,到官网中下载Pylon软件https://www.baslerweb.com/cn/support/downloads/softwa ...

  3. basler相机外部硬触发,转换图像格式并发送到ROS下的topic

    运行环境:Ubuntu20.04 (64-Bit) 运行软件:pylon Viewer 64-Bit,pylon Release 6.3.0 相机型号:acA 1920-25gc (GigE接口) 触 ...

  4. android相机采集sdk,C#用basler相机sdk采集图像并用halcon显示的小程序

    C#用basler相机sdk采集图像并用halcon显示的小程序 C#用basler相机sdk采集图像并用halcon显示的小程序 本人在用halcon做图像处理做视觉项目时,通常都是用c#写程序的主 ...

  5. Basler相机Sdk采图的演示例程(C#)

    机器ppm不达标的情况下,往往对视觉的处理速度有变态的要求,为了争取处理时间最短,几十毫秒也要争取. halcon的接口是通用接口,其速度是比不上相机厂商自己相机配套的SDK的采图速度的. 下面程序运 ...

  6. basler相机快门速度_什么是快门速度?

    basler相机快门速度 In photography, shutter speed, also called exposure time, is the length of time the dig ...

  7. Basler相机外部触发设置(Halcon)

    Basler相机外部触发设置(Halcon) 一.相机硬件接线图 2号引脚接传感器的触发信号引脚,5号与传感器共地连接. 二.pylon软件设置 三.halcon软触发相机拍照 Halcon采集助手设 ...

  8. Basler|基于OpenCV的Basler相机采集图像程序

    http://www.ithao123.cn/content-8057925.html 采用Basler4.0SDK编写,利用Event机制在回调函数中生成灰度图像 回调函数中图像生成代码,利用CCD ...

  9. basler相机的调试与配置以及多相机同时运行(完整版)

    之前在实验室做过一段时间basler相机的调试与配置工作,现将当时的工作整理汇总,以方便日后再用.注:本博客引用的所有视频链接,皆为自己实验室之前的师兄所录制,当做了我当时这部分工作入门的教学视频. ...

  10. Basler相机环境配置

    Basler相机环境配置|CSDN创作打卡 背景: 最近的项目要用到Basler相机,于是将学习的记录保存下来,方便以后查看,大致分为一下几个步骤:安装软件,配置环境 安装软件 下载最新版本的安装包, ...

最新文章

  1. 机器学习编程语言_我应该选择哪种编程语言? 我应该专注于前端吗? 后端? 机器学习?...
  2. 一体化设计让容灾变简单
  3. map中批量图层的加载和展示
  4. nginx反向代理取得IP地址
  5. Fast implementation/approximation of pow() function in C/C++
  6. 关闭防火墙_从零开始学Linux运维|09.关闭防火墙和SElinux
  7. php生成静态html分页实现方法
  8. 纷享逍客宣布完成E+轮融资 长山兴资本领投
  9. c语言ffm是什么错误类型,FFM不能封装flv的问题和替代方案SFF
  10. MySQL中的联合索引
  11. python自助电影售票机_手把手教你用python抢票回家过年(代码简单)
  12. storage相关网站
  13. Dubbo 生态添新兵,Dubbo Admin 发布 v0.1
  14. 8. 机器人正运动学---DH坐标系建立技巧
  15. 腾讯 游戏测试体验工程师 一面
  16. [web前端] 去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?
  17. VS中的debug和releasse版本的区别
  18. 鸿蒙系统支持双系统吗,双系统同台登出,EMUI11+鸿蒙系统2.0,有大招
  19. Monkey测试黑白名单
  20. 一封来信,诉说了开源社区里的天涯若比邻

热门文章

  1. SugarNMS分布式网络运维部署攻略
  2. Java混乱的日志体系(logback)(转)
  3. 使用大于16TB的ext4文件系统
  4. Arrays.copyOfRange
  5. C# 二进制替换第一弹 byte 数组替换
  6. iOS:×××送(二)----pem证书的生成
  7. string equals int
  8. Linq To Sql, 为何继承就这么费劲?
  9. 【CF949D】Curfew(贪心)
  10. php 根据常量名称判断是否定义 和常量名称输出值