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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)