相机程序的注释点

一、其实JSON数据就是一段字符串而已,只不过有不同意义的分隔符将其分割开来而已,我们看上面的符号,里面有[] ,{}等符号,其中
1 []中括号代表的是一个数组;
2 {}大括号代表的是一个对象
3 双引号“”表示的是属性值
4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。

json文件共有6个数据类型

1.string:字符串,必须要用双引号引起来。
2. number:数值,与JavaScript的number一致,整数(不使用小数点或指数计数法)最多为 15 位,小数的最大位数是 17。
3. true/false:布尔类型,JavaScript的boolean类型。
4. null:空值,JavaScript的null
5. object:JavaScript的对象形式,{ key:value }表示方式,可嵌套。
6. array:数组,JavaScript的Array表示方式[ value ],可嵌套。

二,齐次坐标系
在欧氏几何空间,同一平面的两条平行线不能相交。
在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。

介绍齐次坐标系如何平移变换的原理

更加详细的推导过程
齐次坐标系中比较重要的有平移、旋转、扩展和缩小。

三、相机内参和外参相关的知识点
相机内参数和外参数
相机关键的三个参数
1.外参数矩阵。告诉你现实世界点(世界坐标)是怎样经过旋转和平移,然后落到另一个现实世界点(摄像机坐标)上。

2.内参数矩阵。告诉你上述那个点在1的基础上,是如何继续经过摄像机的镜头、并通过针孔成像和电子转化而成为像素点的。

3.畸变矩阵。告诉你为什么上面那个像素点并没有落在理论计算该落在的位置上,还tm产生了一定的偏移和变形!!!

四,调试代码时使用console的效果
from和import的用法
注意点是在地址是用除法的斜杠

五,python中使用with open时候导入路径的办法
path=r"D:\anocothing\pythonWork\camera\target.json"
with open(path,‘r’) as f

导入模块时候的斜杠是反的
import sys
sys.path.append(‘D:/anocothing/pythonWork/camera’)
from fun_cam import *
target=Polyhedron()

六,使用点击的方式将图片中的每个坐标点的位置表示出来

# coding: utf-8
import cv2
img = cv2.imread("Radar.png")
# print(img.shape)

def on_EVENT_LBUTTONDOWN(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        xy = "%d,%d" % (x, y)
        cv2.circle(img, (x, y), 1, (255, 0, 0), thickness=-1)
        cv2.putText(img, xy, (x, y), cv2.FONT_HERSHEY_PLAIN,
                    1.0, (0, 0, 0), thickness=1)
        cv2.imshow("image", img)


cv2.namedWindow("image")
cv2.setMouseCallback("image", on_EVENT_LBUTTONDOWN)
cv2.imshow("image", img)

while (True):
    try:
        cv2.waitKey(100)
    except Exception:
        cv2.destroyAllWindows()
        break

cv2.waitKey(0)
cv2.destroyAllWindows()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个完整的Java代码示例,用于调用相机并将拍摄的照片转换为base64格式: ``` import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.provider.MediaStore; import android.util.Base64; import android.widget.ImageView; import java.io.ByteArrayOutputStream; public class MainActivity extends Activity { private static final int REQUEST_IMAGE_CAPTURE = 1; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = findViewById(R.id.imageView); // 检查相机权限 if (checkSelfPermission(android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{android.Manifest.permission.CAMERA}, 1); } else { dispatchTakePictureIntent(); } } // 拍照 private void dispatchTakePictureIntent() { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (takePictureIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); } } // 获取拍摄的照片 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); imageView.setImageBitmap(imageBitmap); // 将照片转换为base64格式 String base64Image = convertBitmapToBase64(imageBitmap); // 使用base64格式的照片进行其他操作 // ... } } // 将Bitmap转换为base64格式 private String convertBitmapToBase64(Bitmap bitmap) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] byteArray = byteArrayOutputStream.toByteArray(); return Base64.encodeToString(byteArray, Base64.DEFAULT); } } ``` 这个代码示例包括以下步骤: 1. 检查相机权限并请求权限(如果没有权限)。 2. 调用相机应用程序以拍摄照片。 3. 获取拍摄的照片并在ImageView中显示。 4. 将照片转换为base64格式并进行其他操作。 请注意,这个代码示例假设您已经在布局文件中定义了一个ImageView,其ID为“imageView”。如果您没有定义,请根据需要修改代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值