如何在HTML文档中调用Python程序?

简介:

​ 前几天突然遇到这样的一个需求,在html页面中调用python程序对图像进行处理,之后将处理后的图像重新显示在页面中。刚开始还不知道html页面中能够调用python程序,之后了解了才发现可以。html页面中确实能够调用python程序,不过只能调“一点点”,在html中运行python程序有许多限制,首先必须要使用ie浏览器(它是通过一个叫Activex的控件来调用的,通过Activex控件可以在命令行中执行命令,如果把python解释器添加到环境变量中就可以调用python程序),别的浏览器好像都不可以,其次,对于运行程序的路径要求较为严格,不能随意变动。

​ html用来做页面展示比较方便,但不建议在html中调用外部程序,python能写的大多数东西都可以交给js来写。

示例程序介绍:

​ 本文展示了一个在html中调用python程序进行图像处理,之后再进行显示的示例。

示例逻辑介绍:

​ 在html页面中设置input标签用来上传文件,设置两个图片标签用来展示处理前和处理后的图片,当点击浏览时,左边的图像标签将显示选中的图片,同时,python图像处理程序开始运行,对图像进行处理,之后将处理后的图像复制并保存到该html文件的同级目录,默认图像处理完后是不会自动刷新显示的,需要手动点击显示处理结果按钮。

注意一定要选择IE浏览器运行,同时要选择运行运行Activex控件

YOLOv5简介:

​ yolo算法是目标检测领域的扛把子,目标检测通俗来说就是把图像中的物体给找出来,得到物体的种类和在图像中的位置两个信息。网上有许多关于yolo算法的资料,本文采用的是yolov5的体积最小的那个模型,要想运行该模型,还需配置相应的python环境,网上有许多教程,感兴趣的同学可以自己去了解

html代码:

<!--* @Author: your name* @Date: 2021-09-27 21:13:03* @LastEditTime: 2021-09-28 13:00:13* @LastEditors: Please set LastEditors* @Description: In User Settings Edit* @FilePath: \html夹杂python\index.html
-->
<!DOCTYPE html>
<html>  <head>  <meta charset="utf-8">  <style>#header {background-color:black;color:white;text-align:center;padding:5px;}#nav {line-height:50px;background-color:#eeeeee;height:540px;width:220px;float:left;padding:5px;         }#org {width:350px;float:left;padding:7px;         }#result {width:350px;float:right;padding:7px;      }#footer {background-color:black;color:white;clear:both;text-align:center;padding:1px;      }</style>    <script language="javascript">     function exec1(command) {     var ws = new ActiveXObject("WScript.Shell");      ws.run(command);           //exec 和 runws = null;//alert("ok");             弹出一个小框显示“ok”}    function imgChange(obj) {//获取点击的文本框var file = document.getElementById("file");var imgUrl = window.URL.createObjectURL(file.files[0]);var exeUrl = 'python E:\\Demo\\html-python\\yolov5-master\\detect.py --source ' + document.getElementById('file').value + ' --weights E:\\Demo\\yolov5Test\\yolov5-master\\yolov5s.pt --project E:\\Demo\\ --name html-python --exist-ok'var img = document.getElementById('imghead');var result = document.getElementById('rightimg');var arr=file.files[0].name.split('\\');//注split可以用字符或字符串分割var my=arr[arr.length-1];//这就是要取得的图片名称var resultUrl = 'E:\\Demo\\' + my;img.setAttribute('src', imgUrl); // 修改img标签src属性值exec1(exeUrl);result.src = 'E:\\Demo\\12ddddd3.jpg';}; function refresh1(obj){var file = document.getElementById("file");var arr=file.files[0].name.split('\\');//注split可以用字符或字符串分割var my=arr[arr.length-1];//这就是要取得的图片名称var resultUrl = 'E:\\Demo\\html-python\\' + my;var result = document.getElementById('rightimg');result.src = resultUrl;}function refreshimg(obj){var img = document.getElementById("rightimg");var rightUrl = "E:\\Demo\\html-python\\" + file.files[0].name;img.src = rightUrl;}</script>   </head>  <body><div id="header"><h1>测试</h1></div><div >图像处理         <a href="E:\\Demo\\yolov5Test\\yolov5-master\\detect.py" target="show"> 源代码 </a>    <br/> <input type="file" name="file" id="file" accept="image/*" onchange="imgChange(this);"/> <!--文件上传选择按钮--><input type="button" value="显示处理结果" onclick="refreshimg(this)" />  </div><table><tr><td><h2>original:</h2></td><td><h2>result:</h2></td></tr><tr><td><img src=org.png  width="800" border=0 id="imghead"></td><td><img src=result.png  width="800" border=0 id="rightimg"></td></tr></table></body>
</html> 

如果想要运行自己的python程序需要在下面这个位置进行更改:

tips:该模型默认使用的是自带的coco2017数据集的20种物体的目标检测模型,我自己也训练了一个检测口罩的模型,如需更改,只需将yolov5s.pt换成best.pt

注意:该压缩包需要放在E://Demo路径下才能运行,否则会有路径问题

此法运行python文件局限性太大,对路径要求严格,推荐采用html_+js的方式,或者采用python图形化界面的方式

压缩包下载地址:

链接:https://pan.baidu.com/s/1-NW3969iZuBnrzqcTQ3svQ
提取码:zo13

E://Demo路径下才能运行,否则会有路径问题

此法运行python文件局限性太大,对路径要求严格,推荐采用html_+js的方式,或者采用python图形化界面的方式

压缩包下载地址:

链接:https://pan.baidu.com/s/1-NW3969iZuBnrzqcTQ3svQ
提取码:zo13

如何在HTML文档中调用Python程序?相关推荐

  1. typora插入代码设置_一篇文章教会你如何在Markdown文档中插入数学公式

    我平时用的比较多的是Typora这个markdown编辑器.所以在这里就以Typora为例,介绍如何在Markdown文档中插入数学公式的方法. 如果你学会了这个方法,那么你无论使用哪一个markdo ...

  2. C# 如何在Word文档中插入艺术字

    C# 如何在Word文档中插入艺术字 在Word文档中添加艺术字效果可以让文档的排版更加美观.本篇文章主要介绍如何使用C#和Spire.Doc组件在Word文档中插入艺术字. Spire.Doc支持多 ...

  3. 谷歌浏览器在新页面打开_如何在Google文档中更改页面方向

    谷歌浏览器在新页面打开 Most of the time, using a portrait orientation for document pages makes sense. Occasiona ...

  4. 如何在Word文档中粘贴有行号的代码

    我们如何在Word文档中粘贴的代码像下图所示: 第一步:进入网站:http://www.planetb.ca/syntax-highlight-word 第二步:将代码粘贴到如图所示的框内 第三步:选 ...

  5. 如何在 Word 文档中添加水印?

    把 Word 文档中的文件直接发送给客户或者其他人时,难免可能会被直接复制,引起不要的安全隐患.因此,在 Word 当中,通常是可以直接导出为 PDF 文档的.为了降低内容被盗取的可能性,有时候我们还 ...

  6. word文档小方格怎么弄_如何在WORD文档中的小方格里打对勾,独家教程在这里,WORD中的小方框...

    原标题:如何在WORD文档中的小方格里打对勾,独家教程在这里,WORD中的小方框 我们在做一些服务项目的协议或者代理委托时,通常会有一些项目需要我们在前面的小方框里打对勾,打印出来的纸质版只需要拿笔勾 ...

  7. 在中国使用谷歌语音识别_如何在Google文档中使用语音输入

    在中国使用谷歌语音识别 Google Docs lets you use voice typing to dictate using your computer's microphone. It's ...

  8. wps怎么把字缩到最小_如何在WPS文档中快速调节字体大小

    如何在WPS文档中快速调节字体大小 现在越来越多的人在使用WPS的软件了,不过在习惯了使用word文档以后很难对WPS 的使用转变过来,其实WPS软件有着很多的优势,也有很多地方可以让我们办公时得心应 ...

  9. 如何在word文档中,在作文格子内批量输入文档!

    如何在word文档中,在作文格子内批量输入文档 在这样的格子内,书写文字是不是很难受? 那么如何批量的在其中填入我们想填写的文字呢? 一个一个输入?真就时间多了没事干了- 其实,只需要这么简简单单的几 ...

最新文章

  1. 项目性能优化(实现页面静态化1)
  2. 荷花旁的浪漫,优雅了谁的光年,清纯少女芭蕾写真
  3. java rest 图_SpringMVC视图及REST风格
  4. LeetCode 563. Binary Tree Tilt
  5. [转] Async/Await替代Promise的6个理由
  6. 回忆NWT开工,还要吾亲自布网线
  7. 用PHP写距离圣诞节还有多久,距离圣诞节还有多少天
  8. 新中大银色快车服务器重装,新中大简约型ERP软件银色快车SEV9.0版安装说明.doc...
  9. R语言怎么写积分_2. 角速度的积分
  10. Rational Team Concert 2
  11. CF100015B - Ball Painting
  12. 在计算机网络的s,在计算机网络中传输二进制信息时,经常使用的速率单位有“kb/s”、“Mb/s”等。其中,1Mb/s=1000kb/s...
  13. 超好的数据结构算法可视化网站
  14. 解决SELECT list is not in GROUP BY clause and contains nonaggregated column ‘XXX’
  15. Unity3d--基于对象池优化思想的音频管理系统
  16. 吸附去除溶液重金属离子工艺原理
  17. docker ——安装tomcat
  18. uniapp页面不能触发onReachBottom事件
  19. 分享一个java输出pdf的依赖包,非maven,包名:spire.pdf.jar 下载
  20. 夜幕团队成员的工资究竟几 K ?

热门文章

  1. 网页前台推荐一款配色软件:Adobe kuler(在线升级,ADOBE官方产品)
  2. 基础——IOT(物联网)的七大通信协议
  3. 给大家推荐ScratchJr 少儿编程课程,感觉讲的还可以,内容比较清晰,而且前面还有幼儿音乐也比较好听
  4. (imx6)添加RT3070 STA AP 支持
  5. php swoft 路由,Swoft 源码解读
  6. ECharts实现数据可视化超详细基础入门教程
  7. MFC之滑块与旋转控件23
  8. 安卓开发板烧写程序与安装软件的区别_巧用imx6开发板烧写android系统的详细步骤讲解...
  9. ObjectARX 2020 Wizards文件内容
  10. 安装jdk8出现无法定位程序输入点regdeletekeyexa于动态链接库ADVAPI32.dll上