Python:pycharm中读取文件的相对路径和绝对路径

1.绝对路径

要读取如图所示文件的相对路径:

方法1:直接根据文件路径手动读取

D:\PycharmProjects\pythonProject\torch_learning\test_path.py

方法2:os.path.abspath(path)获取

path = "test_path.py"               # path为文件的名称
print(os.path.abspath(papathth))    # 采用os.path.abspath方法获取绝对路径

# 代码结果如下:D:\PycharmProjects\pythonProject\torch_learning\read_data.py

2.绝对路径

比如我想从左图文件”test_path“访问右图"0013035.jpg"文件,采用相对路径:

1.获取当前文件的绝对路径:D:\PycharmProjects\pythonProject\torch_learning\test_path.py

2.获取访问文件的绝对路径:D:\PycharmProjects\pythonProject\torch_learning\dataset\train\ants\0013035.jpg

3.可以看出,要是想从”test_path.py“到"0031035.jpg"必须经过”torch_learning“的文件夹,相当于把它当作一个过渡文件夹

4.相对路径为:”./dataset/train/ants/0013035.jpg“

3.区分pycharm中的窗口运行程序的相对路径和控制台运行的路径

窗口运行程序的相对路径是针对此时运行的文件而言的

而控制台运行程序的相对路径是由当前你创建的虚拟环境所在的位置决定的。

比如我创建的虚拟环境的名称为”pythonProject1“,那么Python控制台的相对路径就是从此开始的。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现读取文件的多幅图像进行配准和拼接,可以使用OpenCV库来进行操作。具体步骤如下: 1.导入必要的库 ```python import cv2 import numpy as np import glob ``` 2.读取文件的图像 ```python images = [] for img_path in glob.glob("path/to/folder/*.jpg"): img = cv2.imread(img_path) images.append(img) ``` 3.将图像转换为灰度图像 ```python gray_images = [] for img in images: gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gray_images.append(gray) ``` 4.进行图像配准 ```python # 创建ORB特征检测器和描述符 orb = cv2.ORB_create() # 用ORB计算特征点和描述符 key_points = [] descriptors = [] for img in gray_images: kp, des = orb.detectAndCompute(img, None) key_points.append(kp) descriptors.append(des) # 创建暴力匹配器 bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) # 进行匹配 matches = [] for i in range(len(descriptors)-1): matches.append(bf.match(descriptors[i], descriptors[i+1])) # 对匹配结果进行筛选 good_matches = [] for match in matches: good = [] for m in match: if m.distance < 100: good.append(m) good_matches.append(good) # 获取匹配的图像点坐标 points1 = [] points2 = [] for i in range(len(good_matches)): for m in good_matches[i]: points1.append(key_points[i][m.queryIdx].pt) points2.append(key_points[i+1][m.trainIdx].pt) # 将点坐标转换为numpy数组 points1 = np.float32(points1) points2 = np.float32(points2) # 计算变换矩阵 M, mask = cv2.findHomography(points2, points1, cv2.RANSAC, 5.0) ``` 5.对图像进行透视变换 ```python # 获取第一幅图像的大小 h, w = gray_images[0].shape # 对除第一幅图像外的其他图像进行透视变换 aligned_images = [] for i in range(1, len(gray_images)): aligned_img = cv2.warpPerspective(gray_images[i], M, (w, h)) aligned_images.append(aligned_img) # 将第一幅图像和变换后的其他图像拼接 result = np.hstack([gray_images[0]] + aligned_images) ``` 6.显示拼接结果 ```python cv2.imshow("Result", result) cv2.waitKey() cv2.destroyAllWindows() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值