您的位置:首页 > 运维架构

OpenCV生成标定图(棋盘格)

2018-03-15 16:48 211 查看
   网上查了一下工业视觉标定板,少则几百大洋,多则几千大洋,就想在A4纸上山寨打印一个标定图,就是黑白方格相间的那种。A4纸的标准大小为210*297mm。搞了个把小时,其实想明白了之后很简单。从每个像素的角度考虑,考虑其最终落入哪个小方块,如果落入小方块的行列之和为奇数,则设置为白色。可以作为简单的上机面试题呀。首先准备一张跟A4纸比例相同的纯黑图片,3A4.bmp,可以用电脑自带的画图生成。然后该设置为白的地方设置为白就行了。代码如下
[cpp] view plain copy#include <opencv\cv.h>  
#include <opencv\highgui.h>  
  
#include <iostream>  
  
using namespace cv;  
using namespace std;  
  
int main()  
{  
    Mat frame = imread("3A4.bmp"); // cols*rows = 630*891  
  
    int nc = frame.channels();  
      
    int nWidthOfROI = 90;  
  
    for (int j=0;j<frame.rows;j++)  
    {  
        uchar* data= frame.ptr<uchar>(j);  
        for(int i=0;i<frame.cols*nc;i+=nc)  
        {             
            if( (i/nc/nWidthOfROI + j/nWidthOfROI) % 2)  
            {  
                // bgr  
                data[i/nc*nc + 0] = 255 ;  
                data[i/nc*nc + 1] = 255 ;  
                data[i/nc*nc + 2] = 255 ;                 
            }  
        }  
    }  
  
    imshow("test",frame);  
    waitKey(0);  
  
    return 0;  
}  

生成的图形如下


转:http://blog.csdn.net/lonelyrains/article/details/46874723
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐