建筑图像提取线稿

张开发
2026/5/3 5:48:06 15 分钟阅读
建筑图像提取线稿
1、在使用深度学习模型前我会习惯先检查检查 GPUCUDA是否可用。这段主要是检查 GPUCUDA是否可用以及使用 OpenCV 对一张图像进行边缘检测并保存结果。import torch print(torch.cuda.is_available()) # 如果True说明GPU可用import torch导入 PyTorch 深度学习框架。torch.cuda.is_available()返回一个布尔值True或False表示当前环境中的 CUDANVIDIA GPU 加速是否可用。print(...)将结果打印到控制台用于快速确认是否可以使用 GPU 进行计算尽管后续代码并未使用 PyTorch 做任何计算。2、相关库导入import cv2 import numpy as npimport cv2导入 OpenCV 库用于图像处理读取、转换、边缘检测等。import numpy as np导入 NumPyOpenCV 读取的图像本质上就是 NumPy 数组后续操作依赖它。3、读取图像img cv2.imread(D:\pycharm\project\cpntrolnet/sist.jpg)cv2.imread()从指定路径读取图像文件。路径字符串中混合使用了反斜杠\和正斜杠/。⚠️潜在问题在 Windows 系统中反斜杠\在字符串中是转义字符例如\p可能被解释为特殊转义序列。虽然本例中\p、\c不是标准转义符Python 会将其当作普通反斜杠加字母处理但仍建议使用原始字符串rD:\pycharm\...或统一使用正斜杠/OpenCV 也支持以避免意外错误。若文件不存在或路径错误img将为None后续操作会抛出异常。4、图像处理gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges cv2.Canny(gray, 100, 200)cv2.cvtColor()转换图像的颜色空间。cv2.COLOR_BGR2GRAY将 BGR 彩色图像转换为灰度图单通道。OpenCV 默认读取的图像通道顺序为 BGR而非常见的 RGB。cv2.Canny()Canny 边缘检测算法。gray输入的灰度图像。100和200滞后阈值中的低阈值和高阈值。梯度值高于 200 的像素被保留为强边缘低于 100 的被抑制介于两者之间的若与强边缘相连则保留。返回一个二值图像边缘为白色背景为黑色。5、结果保存cv2.imwrite(sketch.png, edges)cv2.imwrite()将边缘检测结果保存为 PNG 图像文件位于当前工作目录下文件名为sketch.png。成功保存时返回True否则返回False如因权限、路径问题等。总结这段代码先检查 GPU 是否可用尽管后续没用 GPU然后从指定路径读取一张图片转为灰度图用 Canny 算子提取边缘最后将边缘图像保存为sketch.png。若路径或文件有问题程序会因img为None而报错。建议修正图像路径的书写方式并添加异常处理例如判断img是否为空输入图像输出结果

更多文章