博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV生成标定图(棋盘格)
阅读量:2383 次
发布时间:2019-05-10

本文共 748 字,大约阅读时间需要 2 分钟。

 

网上查了一下工业视觉标定板,少则几百大洋,多则几千大洋,就想在A4纸上山寨打印一个标定图,就是黑白方格相间的那种。A4纸的标准大小为210*297mm。搞了个把小时,其实想明白了之后很简单。从每个像素的角度考虑,考虑其最终落入哪个小方块,如果落入小方块的行列之和为奇数,则设置为白色。可以作为简单的上机面试题呀。首先准备一张跟A4纸比例相同的纯黑图片,3A4.bmp,可以用电脑自带的画图生成。然后该设置为白的地方设置为白就行了。代码如下

 

 

[cpp]  

  1. #include <opencv\cv.h>  
  2. #include <opencv\highgui.h>  
  3.   
  4. #include <iostream>  
  5.   
  6. using namespace cv;  
  7. using namespace std;  
  8.   
  9. int main()  
  10. {  
  11.     Mat frame = imread("3A4.bmp"); // cols*rows = 630*891  
  12.   
  13.     int nc = frame.channels();  
  14.       
  15.     int nWidthOfROI = 90;  
  16.   
  17.     for (int j=0;j<frame.rows;j++)  
  18.     {  
  19.         uchar* data= frame.ptr<uchar>(j);  
  20.         for(int i=0;i<frame.cols*nc;i+=nc)  
  21.         {             
  22.             if( (i/nc/nWidthOfROI + j/nWidthOfROI) % 2)  
  23.             {  
  24.                 // bgr  
  25.                 data[i/nc*nc + 0] = 255 ;  
  26.                 data[i/nc*nc + 1] = 255 ;  
  27.                 data[i/nc*nc + 2] = 255 ;                 
  28.             }  
  29.         }  
  30.     }  
  31.   
  32.     imshow("test",frame);  
  33.     waitKey(0);  
  34.   
  35.     return 0;  
  36. }  

 

 

生成的图形如下

你可能感兴趣的文章
Centos7.3 JAVA环境变量安装
查看>>
mysql开启远程访问权限
查看>>
MySQL忘记密码破解密码的方法
查看>>
在阿里云服务器上安装mysql及重置密码
查看>>
linux上mysql的安装
查看>>
MySQL忘记密码破解密码的方法
查看>>
jQuery的ajax报错 Illegal invocation
查看>>
mysql中bigint、int、mediumint、smallint 和 tinyint的区别
查看>>
Java-数据加解密实现
查看>>
解决错误 使用子查询时 这版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询
查看>>
sql语句查询最近七天 三十天 数据
查看>>
创建索引原则及SQL添加索引
查看>>
List根据对象的两个字段进行排序,并且有一个倒序
查看>>
获取两个list的差集方法
查看>>
idea报错 “cannot access xxx“的解决办法
查看>>
sql查询将多个结果合并成一个字符串并用逗号隔开
查看>>
idea的target文件夹不显示
查看>>
sql求平均数并保留两位小数
查看>>
Java复制Bean,List工具类
查看>>
Mybatis批量删除、新增实现方法
查看>>