Matlab 画棋盘格

Matlab 画棋盘格,第1张

%画棋盘

width=1920        %pattern的宽

height=1080              %pattern的高

img_final=zeros(height,width)

%reinforceconner=0      %是否加强角点

row=9                %pattern中棋盘格的行数

col=16               %pattern中棋盘格的列数

length=120          %pattern中棋盘格的大小

org_X=(height-row*length)/2+1        %pattern关于纵轴方向的位置,默认放在中间

org_Y=(width-col*length)/2+1            %pattern关于横轴方向的位置,默认放在中间

  color1=1

    color2=color1

img=zeros(row*length,col*length)

for i=0:(row-1)

    color2=color1

    for j=0:(col-1)

        if color2==1

        img(i*length+1:(i+1)*length,j*length+1:(j+1)*length)=color2

        end

        %不加的话,可以注释掉

        %

        color2=~color2

    end

    color1=~color1

end

img_final(org_X:org_X+row*length-1,org_Y:org_Y+col*length-1)=img

%{

img_final=~img_final

  img_final(1,:) = 1

  img_final(height,:) = 1

  img_final(:,1) = 1

  img_final(:,width) = 1

%}

    figureimshow(img_final) 

    imwrite(img_final, 'cheesBoard.png','png')

% 利用matlab计算屏幕偏转

I = imread('ZWIN_.jpg')

images = imageDatastore('F:\PictureFORCalibration\P1')

[imagePoints,boardSize] = detectCheckerboardPoints(images.Files)

squareSize = 25

worldPoints = generateCheckerboardPoints(boardSize,squareSize)

imageSize = [size(I,1),size(I,2)]

cameraParams = estimateCameraParameters(imagePoints,worldPoints, ...

'ImageSize',imageSize,'EstimateTangentialDistortion' ,true,...

'NumRadialDistortionCoefficients',3,'EstimateSkew',true)

imOrig = I

figureimshow(imOrig)

title('Input Image')

im = undistortImage(imOrig,cameraParams)

[imagePoints,boardSize] = detectCheckerboardPoints(im)

[rotationMatrix,translationVector] = extrinsics(...

    imagePoints,worldPoints,cameraParams)

figure

showExtrinsics(cameraParams)

disp('旋转矩阵')

disp(rotationMatrix)

disp('平移矩阵')

disp(translationVector)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12099726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存