当前位置: 首页 > news >正文

建筑图像提取线稿

1、在使用深度学习模型前,我会习惯先检查检查 GPU(CUDA)是否可用。
这段主要是检查 GPU(CUDA)是否可用,以及使用 OpenCV 对一张图像进行边缘检测并保存结果。

import torch print(torch.cuda.is_available()) # 如果True说明GPU可用
  • import torch:导入 PyTorch 深度学习框架。

  • torch.cuda.is_available():返回一个布尔值(TrueFalse),表示当前环境中的 CUDA(NVIDIA GPU 加速)是否可用。

  • print(...):将结果打印到控制台,用于快速确认是否可以使用 GPU 进行计算(尽管后续代码并未使用 PyTorch 做任何计算)。

2、相关库导入

import cv2 import numpy as np
  • import cv2:导入 OpenCV 库,用于图像处理(读取、转换、边缘检测等)。

  • import numpy as np:导入 NumPy,OpenCV 读取的图像本质上就是 NumPy 数组,后续操作依赖它。

3、读取图像

img = cv2.imread("D:\pycharm\project\cpntrolnet/sist.jpg")
  • cv2.imread():从指定路径读取图像文件。路径字符串中混合使用了反斜杠\和正斜杠/

    • ⚠️潜在问题:在 Windows 系统中,反斜杠\在字符串中是转义字符,例如\p可能被解释为特殊转义序列。虽然本例中\p\c不是标准转义符(Python 会将其当作普通反斜杠加字母处理),但仍建议使用原始字符串r"D:\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:输入的灰度图像。

  • 100200:滞后阈值中的低阈值和高阈值。梯度值高于 200 的像素被保留为强边缘,低于 100 的被抑制,介于两者之间的若与强边缘相连则保留。

  • 返回一个二值图像(边缘为白色,背景为黑色)。

5、结果保存

cv2.imwrite("sketch.png", edges)
  • cv2.imwrite():将边缘检测结果保存为 PNG 图像文件(位于当前工作目录下,文件名为sketch.png)。成功保存时返回True,否则返回False(如因权限、路径问题等)。

总结:这段代码先检查 GPU 是否可用(尽管后续没用 GPU),然后从指定路径读取一张图片,转为灰度图,用 Canny 算子提取边缘,最后将边缘图像保存为sketch.png。若路径或文件有问题,程序会因imgNone而报错。建议修正图像路径的书写方式并添加异常处理(例如判断img是否为空)

输入图像:

输出结果:

http://www.jsqmd.com/news/583034/

相关文章:

  • Comsol 5.4版弹性波三维能带计算案例:Smart Mater. Struct. 201...
  • 如何利用 SEO 工具提取网站的外部链接
  • GuwenBERT终极指南:如何用AI解锁古文自然语言处理能力
  • 天梯赛L2-006 树的遍历
  • 【OIDC】PKCE流程
  • Kali Linux 虚拟机安装与基础配置保姆级图文教程_虚拟机安装kali教程
  • OFA图像描述系统实战:快速搭建图片转文字工具,避免常见权限错误
  • 偏振不敏感 宽带消色差长波红外超构透镜模型 色散补偿设计 FDTD仿真 超表面 复现论文:20...
  • 长生露模式系统开发
  • 成本对比:OpenClaw调用自部署SecGPT-14B与商用API的实测数据
  • 用 AI 做鸿蒙游戏 NPC,是一种什么体验?
  • 20260403 找工作感受 - 枝-致
  • # 发散创新:基于Python与OpenCV的智能交通流量实时监测系统实现 在智慧城市建设浪潮中,**智能交通系统(ITS)*
  • 米哈游2026春招(附内推):刷了200题C++,一面还是被问倒了
  • 原神帧率解锁终极指南:三步轻松突破60FPS限制
  • 基于微信小程序在线考试系统-计算机项目设计学习项目
  • 20260403_153320_通过_Claude_Code_源码,来分析_Anthropi
  • Spring AI 实战系列(十):MCP深度集成 —— 工具暴露与跨服务调用
  • 零基础友好:跟着快马生成的交互式脚本轻松完成openclaw安装入门
  • 3个场景告诉你:为什么跨平台文本编辑器Notepad--值得一试
  • thinkphp8官方文档
  • 强力突破语言障碍:Screen Translator如何重塑跨语言工作流程
  • 提升前端效率:用快马实践vibe coding快速生成沉浸式番茄钟应用
  • 用ColabFold打破蛋白质结构预测壁垒:从学术研究到工业应用的完整指南
  • 微软亚洲研究院团队开发的MSA技术让AI拥有人类级别的终生记忆
  • 通达信缠论可视化插件:5步快速掌握专业K线分析技术
  • 提升开发效率:用快马一键生成自动化twitter x数据采集工具
  • 全球辅助动力装置(APU):稳增6.0%,2032年剑指106.47亿美元
  • 炸了!3月中国AI彻底翻盘:大模型反超美国,国产算力芯片打破垄断
  • PHP 8新特性盘点