本次申请orangePI zero plus2用于制作智能相机项目。
使用的操作系统:debian_server_jessie_zeroplus2_H5_V0_2.img
使用的opencv版本:opencv2.4.9
摄像头模块分辨率:130w
摄像头接口:UVC
摄像头扩展板的功能:130w摄像头sensor、摄像头补光灯、补光灯
电源开关、补光灯亮度调节旋钮、散热风扇接口
opencv的安装可以参考我以前的帖子,有各种安装opencv的方式教程。
模块图片:
目前已经实现手势识别算法和二维码加一维码识别项目:
二维码和一维码识别算法源码:
- #include
- #include
- #include
- #include
- #include
- using namespace std;
- using namespace zbar; //..zbar....
- using namespace cv;
- int main(int argc,char*argv[])
- {
- ImageScanner scanner;
- scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);
- Mat image = imread(argv[1]);
- Mat imageGray;
- cvtColor(image,imageGray,CV_RGB2GRAY);
- int width = imageGray.cols;
- int height = imageGray.rows;
- uchar *raw = (uchar *)imageGray.data;
- Image imageZbar(width, height, "Y800", raw, width * height);
- scanner.scan(imageZbar); //....
- Image::SymbolIterator symbol = imageZbar.symbol_begin();
- if(imageZbar.symbol_begin()==imageZbar.symbol_end())
- {
- cout<<"............."<
- }
- for(;symbol != imageZbar.symbol_end();++symbol)
- {
- cout<<"..."<get_type_name()<
- cout<<"..."<get_data()<
- }
- //imshow("Source Image",image);
- //waitKey();
- imageZbar.set_data(NULL,0);
- return 0;
- }
-
上面这个代码使用了zbar的库,这个可以去下载源码自己编译,使用的时候加入相应的头文件及在编译的时候加入相应的库就行。提供的这个代码使用输入图片文件的形式,应为如果要使用摄像头需要加入比较多的别的东西,比如一般的摄像头的畸变都比较大,需要首先做摄像头的畸变校正,另外在识别实际的二维码和条形码的时候图片除了畸变还有些几何变形,需要做仿射变换,这部分我已经实现,但暂时不开源出源码。