OpenCV生成标定图

本文由 @lonelyrains 出品,转载请注明出处。 
文章链接: http://blog.csdn.net/lonelyrains/article/details/46874723



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



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


生成的图形如下



            </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值