`
Dream.V
  • 浏览: 32627 次
社区版块
存档分类
最新评论

【javascript】BOM和DOM

 
阅读更多

先说明一个问题,到底是将JavaScript内嵌在HTML页面中还是做成外部文件?关于这一点并没有什么必须遵循的规则,但是通常大量的JavaScript代码不应该内嵌在HTML页面中,原因如下:

  • 安全性:如果每个人都可以随便查看页面的源代码,那么就有可能会发现安全漏洞从而危及整个站点或应用程序的安全。
  • 代码维护:如果每个页面都写自己的JavaScript,那么代码维护将是一场噩梦,而且也不利于对代码的重用。
  • 缓存:浏览器通常会根据特定的设置缓存所有的外部JavaScript文件,这意味着如果多个页面使用同一个文件,那么该文件只需要下载一次,这将节省时间和网络带宽。
另外一个大家可能会关注的问题是<script>标签到底放在<head>中还是<body>里面?一般情况下所有的代码和函数的定义都应该放在<head>标签中,这样在显示页面主体后代码已经完全被浏览器装载,可以直接调用了。我们不建议在页面<body>标签内直接调用JavaScript函数,建议<body>中对JavaScript函数的调用都是跟事件绑定在一起的。

1. BOM

探讨JavaScript就不能不说到BOM(浏览器对象模型),它提供了独立于内容而与浏览器窗口进行交互的对象。window对象表示整个浏览器窗口,通过它可以对浏览器进行各种操作,包括移动或调整浏览器窗口的大小等。

  • moveBy(dx, dy):将浏览器窗口水平移动dx个像素,垂直移动dy个像素。
  • moveTo(x, y):将浏览器窗口移到屏幕的(x, y)处。
  • resizeBy(dw, dh):将浏览器窗口宽度调整dw个像素,高度调整dh个像素。
  • resizeTo(w, h):将浏览器窗口宽度设置为w,高度设置为h,此方法不能使用负数作为参数。
如果想要获得窗口的宽度和高度以及在屏幕上的位置就存在浏览器兼容性问题,应为没有相关的标准。

  • IE提供了window.screenLeft和window.screenTop对象来判断窗口的位置,但是没有提供判断窗口大小的方法。通过document.body.offsetWidth和document.body.offsetHeight可以获得HTML页面区域的大小,这些都不是标准属性。
  • Mozilla、Opera和Safari提供了window.screenX和window.screenY属性判断窗口的位置。除此之外,还提供了window.innerWidth和window.innerHeight属性来判断页面区域的大小以及window.outerWidth和window.outerHeight来判断浏览器窗口的大小。
温馨提示:专业的Web站点通常都不会做移动窗口或者调整窗口大小这种无用的效果,所以即使这些效果感觉上很酷但仍然要避免使用它们。

通过window.open()方法可以打开新窗口,但是由于这种弹出式的窗口通常都被认为是令人厌恶的广告,于是乎很多浏览器都提供了拦截弹出窗口的功能,因此关于此方法不做过多的解释。

window对象的alert()、confirm()和prompt()方法可以产生系统对话框,分别警告框、确认框和输入框,而且都是模态(modal)对话框。

通过window对象的status属性和defaultStatus属性可以操作浏览器窗口的状态栏,但是专业的Web站点通常也不会用JavaScript去操作状态栏,因为它会分散用户的注意力而且不产生实用价值,虽然很多业余人士喜欢在状态栏制作一些跑马灯效果,但是很明显这种效果不仅没用还很让人讨厌,极其的不专业。最主要的是,很多浏览器已经没有状态栏了,比如FireFox和Chrome。

对于熟悉Java的开发者来说,可以使用对象的wait()方法使得程序暂停或者等待指定的时间后才继续执行。这种功能经常都会用到,然后JavaScript中并没有相应的支持。在JavaScript中可以通过window对象的setTimeout()方法设置暂停,或者说指定在将来的某个时间执行某项操作,可以通过clearTimeout()清除暂停。除此之外,window对象还提供了setInterval()方法可以指定某项操作按照指定的时间间隔周期性的执行,同样也可以通过clearInterval()将其取消。

window对象的history属性代表了访问浏览器窗口的历史。该对象提供了forward()、back()和go()方法实现历史页面的前进和后退功能。

我们最熟悉的document对象实际上也是window对象的属性,document对象有很多的属性和方法,这些可以查询参考手册获得相关信息,其中write()和writeln()方法可以在页面中输出内容,但是需要注意的是:必须在完全载入页面前调用write()和writeln()方法,如果这两个方法中的任何一个在页面载入后被调用,那么整个页面的内容会被抹去然后再输出方法中指定的内容。

window对象的location属性表示载入窗口的URL(简单说就是地址栏),通过该对象的href属性可以修改地址栏的内容,还可以通过该对象的reload()方法重新载入页面。通常应该将reload()方法放在代码的最后一行,因为reload()之后的代码可能执行也可能不执行(与网络延迟和资源加载等因素相关),放在前面可能会导致不确定行为。这里可以展示一个经常使用的效果,页面的延迟跳转

  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <title></title>
  5. <scripttype="text/javascript">
  6. varcounter=5;
  7. vardelayGoToURL=function(){
  8. document.getElementById("counter").innerHTML=counter;
  9. counter--;
  10. if(counter==0){
  11. window.location.href="http://www.baidu.com";
  12. delayGoToURL=function(){};
  13. }
  14. setTimeout("delayGoToURL()",1000);
  15. }
  16. window.onload=delayGoToURL;
  17. </script>
  18. </head>
  19. <body>
  20. <h1><spanid="counter"></span>秒之后跳转到百度</h1>
  21. </body>
  22. </html>

其中第13行重新绑定delayGoToURL函数是为了防止页面不能及时跳转时,计数器会变成0甚至负数的情况。

window对象的navigator属性提供了对浏览器信息的封装,它的appCodeName、appName等属性在对浏览器进行判断和检测时有重要作用,很多时候浏览器兼容性检测都需要用到navigator对象。

可以通过window对象的screen属性获取关于用户屏幕的相关信息:

  • availHeight:窗口可以使用的屏幕高度(以像素计)
  • availWidth:窗口可以使用的屏幕宽度(以像素计)
  • colorDepth:颜色位数
  • height:屏幕的高度(以像素计,即纵向分辨率)
  • width:屏幕的宽度(以像素计,即横向分辨率)
2. DOM

DOM(文档对象模型)是将整个HTML页面视为一个树形结构,那么DOM树的节点(node)层次是这样的:

  • Document---最顶层节点,所有其他节点都是它的子节点
  • DocumentType---DTD引用
  • DocumentFragment
  • Element---表示起始标签和结束标签之间的内容
  • Attr---代表一个键值对(不能包含子节点)
  • Text---代表XML文档中在其实标签和结束标签之间的普通文本(不能包含子节点)
  • CDataSection
  • Entity
  • ProcessingInstruction
  • Comment
  • Notation
DOM定义了Node接口,其中包含了大量的属性和方法对提供对页面元素的操作:

  • nodeName --- String --- 节点的名字
  • nodeValue --- String ---节点的值
  • nodeType --- Number --- 节点类型对应的常量值
    • 1 --- Node.ELEMENT_NODE
    • 2 --- Node.ATTRIBUTE_NODE
    • 3 --- Node.TEXT_NODE
    • 9 --- Node.DOCUMENT_NODE
  • ownerDocument --- Document --- 指向节点所属的文档
  • firstChild --- Node --- 子节点中的第一个节点
  • lastChild --- Node --- 子节点中的最后一个节点
  • childNodes --- NodeList --- 所有子节点列表
  • previousSibling --- Node --- 前一个兄弟节点
  • nextSibling --- Node --- 后一个兄弟节点
  • hasChildNodes() --- Boolean --- 是否包含一个或多个子节点
  • attributes --- NamedNodeMap --- 元素的属性
  • appendChild(node) --- Node --- 追加子节点
  • removeChild(node) --- Node --- 删除子节点
  • replaceChild(newnode, oldnode) --- Node --- 替换子节点
  • insertBefore(newnode, refnode) --- Node --- 插入子节点

要访问<html />元素,可以使用document.documentElement属性(在IE 5.5中存在错误),例如:

[javascript]view plaincopy
  1. varhtml=document.documentElement;
  2. varhead=html.firstChild;//<head/>
  3. varbody=html.lastChild;//<body/>
  4. alert(body.nodeName);//BODY
  5. alert(body.nodeType);//1---Node.ELEMENT_NODE


当然,也可以通过document.body访问<body />元素。

Element节点的attributes属性其实是NamedNodeMap,提供了用于访问和处理其内容的方法:

  • getNamedItem(name):返回nodeName属性值等于name的节点。
  • removeNamedItem(name):删除nodeName属性值等于name的节点。
  • setNamedItem(node):将node添加到列表中,按其nodeName属性进行索引。
  • item(pos):像NodeList一样,返回位置在pos的节点。
  1. <!DOCTYPEhtml>
  2. <html>
  3. <head><title></title></head>
  4. <body>
  5. <pstyle="color:red"id="test">Hello</p>
  6. <scripttype="text/javascript">
  7. varp=document.getElementsByTagName("p")[0];
  8. alert(p.attributes.getNamedItem("id").value);//test
  9. </script>
  10. </body>
  11. </html>

如果要访问指定节点,可以通过以下方法实现:

  • getElementsByTagName():此方法当参数为”*“时可以返回所有元素,但是在低版本的IE(IE6-)中不被支持(可以通过document.all替代)。
  • getElementsByName():这个方法通过名字取到一组元素,例如在制作复选框效果(全选、反选)的时候该方法就特别有用。
  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <title>01.html</title>
  5. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  6. <metahttp-equiv="description"content="thisismypage">
  7. <metahttp-equiv="content-type"content="text/html;charset=UTF-8">
  8. <!--<linkrel="stylesheet"type="text/css"href="./styles.css">-->
  9. <scripttype="text/javascript">
  10. functionselectAllOrNot(flag){
  11. varx=document.getElementsByName("goodsName");
  12. for(vari=0;i<x.length;i++){
  13. x[i].checked=flag;
  14. }
  15. }
  16. functionreverseSelect(){
  17. varx=document.getElementsByName("goodsName");
  18. for(vari=0;i<x.length;i++){
  19. x[i].checked=!x[i].checked;
  20. }
  21. }
  22. </script>
  23. </head>
  24. <body>
  25. <ahref="javascript:selectAllOrNot(true)">全选</a>
  26. <ahref="javascript:reverseSelect()">反选</a>
  27. <ahref="javascript:selectAllOrNot(false)">取消</a>
  28. <table>
  29. <tr>
  30. <tdstyle="width:25px"></td>
  31. <td>商品名称</td>
  32. <td>商品价格</td>
  33. </tr>
  34. <tr>
  35. <td><inputtype="checkbox"name="goodsName"/></td>
  36. <td>篮球</td>
  37. <td>98.5</td>
  38. </tr>
  39. <tr>
  40. <td><inputtype="checkbox"name="goodsName"/></td>
  41. <td>矿泉水</td>
  42. <td>1.5</td>
  43. </tr>
  44. <tr>
  45. <td><inputtype="checkbox"name="goodsName"/></td>
  46. <td>方便面</td>
  47. <td>2.3</td>
  48. </tr>
  49. <tr>
  50. <td><inputtype="checkbox"name="goodsName"/></td>
  51. <td>自行车</td>
  52. <td>4500</td>
  53. </tr>
  54. </table>
  55. </body>
  56. </html>

  • getElementById():不解释,但是在IE 6中存在bug,使用低版本IE时需要小心。
要创建和删除节点,可以通过下面的方法完成:

  • createElement() / createTextNode() / appendChild()
  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <title></title>
  5. <scripttype="text/javascript">
  6. functioncreateMessage(){
  7. varp=document.createElement("p");
  8. p.style.fontSize="32px";
  9. p.style.fontFamily="TimesNewRoman";
  10. p.style.fontWeight="bolder";
  11. vartext=document.createTextNode("Hello,world!");
  12. p.appendChild(text);
  13. document.body.appendChild(p);
  14. }
  15. </script>
  16. </head>
  17. <bodyonload="createMessage()">
  18. </body>
  19. </html>

  • removeChild() / replaceChild() / insertBefore()
  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <title></title>
  5. <scripttype="text/javascript">
  6. functionreplaceMessage(){
  7. varop=document.getElementsByTagName("p")[0];
  8. varnp=document.createElement("p");
  9. varstyle=document.defaultView.getComputedStyle(op,null);
  10. np.style.fontSize=style.fontSize;
  11. np.style.fontFamily=style.fontFamily;
  12. vartext=document.createTextNode("Goodbye,world!");
  13. np.appendChild(text);
  14. op.parentNode.replaceChild(np,op);
  15. }
  16. </script>
  17. </head>
  18. <bodyonload="replaceMessage()">
  19. <pstyle="font-size:32px;font-family:TimesNewRoman">Hello,world!</p>
  20. </body>
  21. </html>

[重要提示]:所有的DOM操作必须在页面完全载入之后才能进行。当页面正在载入时,要向DOM插入相关代码是不可能的,因为在页面完全下载到客户端浏览器之前是无法构建完整的DOM树的。为此最好使用onload事件句柄来执行DOM操作的代码。

Web页面开发时经常会用到对表格的处理操作,操作表格可以使用下面的属性和方法:

  • caption:表标题<caption />
  • tBodies:表身<tbody />
  • tFoot:表尾<tfoot />
  • tHead:表头<thead />
  • rows:表格中所有的行
  • createTHead() /createTFoot() /createCaption() /deleteTHead() /deleteTFoot() /deleteCaption()
  • deleteRow(pos):删除表格中指定位置的行
  • insertRow(pos):在表格指定位置插入新行
<tr />元素的属性和方法:
  • cells:表格中的所有单元格
  • deleteCell(pos):删除行中指定位置的单元格
  • insertCell(pos):在行的指定位置插入单元格
一个通过DOM操作表格的例子:

  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <title>01.html</title>
  5. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  6. <metahttp-equiv="description"content="thisismypage">
  7. <metahttp-equiv="content-type"content="text/html;charset=UTF-8">
  8. <styletype="text/css">
  9. td{
  10. width:75px;
  11. }
  12. </style>
  13. <!--<linkrel="stylesheet"type="text/css"href="./styles.css">-->
  14. <scripttype="text/javascript">
  15. function$(id){
  16. returndocument.getElementById(id);
  17. }
  18. functioninit(){
  19. varmyRows=$("carts").rows;
  20. for(vari=1;i<myRows.length-1;i++){
  21. myRows[i].id="row"+i;
  22. myRows[i].cells[4].innerHTML=
  23. "<inputtype=\"button\"value=\"删除\"onclick=\"deleteRow('"+myRows[i].id+"')\"/>";
  24. myRows[i].cells[5].innerHTML=
  25. "<inputtype=\"button\"value=\"修改\"onclick=\"editRow('"+myRows[i].id+"')\"/>";
  26. }
  27. calcTotal();
  28. }
  29. functioncalcItem(){
  30. varmyRows=$("carts").rows;
  31. for(vari=1;i<myRows.length-1;i++){
  32. vartotal=myRows[i].cells[1].innerHTML*
  33. myRows[i].cells[2].innerHTML;
  34. vartotalDisplay=Math.round(total*10)/10;
  35. myRows[i].cells[3].innerHTML=totalDisplay;
  36. }
  37. calcTotal();
  38. }
  39. functioncalcTotal(){
  40. varmyRows=$("carts").rows;
  41. varsum=0;
  42. for(vari=1;i<myRows.length-1;i++){
  43. vartotalDisplay=myRows[i].cells[3].innerHTML;
  44. sum+=parseFloat(totalDisplay);
  45. }
  46. varlastRow=myRows[myRows.length-1];
  47. lastRow.cells[1].innerHTML="¥"+sum;
  48. }
  49. functiondeleteRow(rowId){
  50. $("carts").deleteRow($(rowId).rowIndex);
  51. calcTotal();
  52. }
  53. functioneditRow(rowId){
  54. varcell=$(rowId).cells[2];
  55. cell.innerHTML=
  56. "<inputtype='text'size='4'value='"+cell.innerHTML+"'/>";
  57. varbutton=$(rowId).cells[5].firstChild;
  58. button.setAttribute("value","保存");
  59. button.setAttribute("onclick","saveRow('"+rowId+"')");
  60. }
  61. varreg=/^\d+$/;
  62. functionsaveRow(rowId){
  63. varcell=$(rowId).cells[2];
  64. if(reg.test(cell.firstChild.value)){
  65. cell.innerHTML=cell.firstChild.value;
  66. varbutton=$(rowId).cells[5].firstChild;
  67. button.setAttribute("value","修改");
  68. button.setAttribute("onclick","editRow('"+rowId+"')");
  69. calcItem();
  70. }
  71. else{
  72. alert("请输入正整数");
  73. }
  74. }
  75. window.onload=function(){
  76. init();
  77. calcItem();
  78. };
  79. </script>
  80. </head>
  81. <body>
  82. <divalign="center">
  83. <tableid="carts"style="border-style:solid;border-left-color:black">
  84. <tr>
  85. <td>商品名称</td>
  86. <td>商品价格</td>
  87. <td>商品数量</td>
  88. <tdalign="right">小结</td>
  89. <tdcolspan="2"></td>
  90. </tr>
  91. <tr>
  92. <td>篮球</td>
  93. <td>98.5</td>
  94. <tdonclick="foo(this)">3</td>
  95. <tdalign="right"></td>
  96. <td></td>
  97. <td></td>
  98. </tr>
  99. <tr>
  100. <td>矿泉水</td>
  101. <td>1.5</td>
  102. <td>10</td>
  103. <tdalign="right"></td>
  104. <td></td>
  105. <td></td>
  106. </tr>
  107. <tr>
  108. <td>方便面</td>
  109. <td>2.3</td>
  110. <td>12</td>
  111. <tdalign="right"></td>
  112. <td></td>
  113. <td></td>
  114. </tr>
  115. <tr>
  116. <td>自行车</td>
  117. <td>4500</td>
  118. <td>2</td>
  119. <tdalign="right"></td>
  120. <td></td>
  121. <td></td>
  122. </tr>
  123. <tr>
  124. <tdwidth="100">总计</td>
  125. <tdcolspan="3"align="right"></td>
  126. <tdcolspan="2"></td>
  127. </tr>
  128. </table>
  129. </div>
  130. </body>
  131. </html>

遍历所有节点的方法

DOM Level 2中提供了遍历DOM的接口(至于你的浏览器到底支持哪种级别的DOM,这个需要去查一下,反正IE支持的DOM级别应该是很低的),下面通过一个例子简单的说明一下

  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <title></title>
  5. <scripttype="text/javascript">
  6. functionfoo(){
  7. varwalker=document.createTreeWalker(document.documentElement,NodeFilter.SHOW_ELEMENT,null,false);
  8. varoNode=walker.nextNode();
  9. varoutput="";
  10. while(oNode){
  11. output+=oNode.tagName+"\n";
  12. oNode=walker.nextNode();
  13. }
  14. alert(output);
  15. }
  16. window.onload=foo;
  17. </script>
  18. </head>
  19. <body>
  20. <h1>Hello,world!</h1>
  21. </body>
  22. </html>

在Chrome和FireFox中运行的结果为:


转载自http://my.csdn.net/jackfrued。。。正儿八经的大牛,,啊,高手不解释

分享到:
评论

相关推荐

    Python项目-实例-02 代码雨.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

    Matlab实现SO-CNN-SVM蛇群算法优化卷积神经网络-支持向量机的多输入单输出回归预测(含完整的程序,GUI设计和代码详解)

    内容概要:本文介绍了使用 Matlab 实现 SO-CNN-SVM 框架进行多输入单输出回归预测的全过程。该框架利用蛇群优化算法(SO)优化卷积神经网络(CNN)和 支持向量机(SVM),实现高效的特征提取和回归预测。文章详细描述了数据预处理、模型构建、SO算法优化、模型训练、可视化和 GUI 设计的步骤,并提供了完整的代码示例。 适合人群:具备一定机器学习和深度学习基础,熟悉 Matlab 编程的研究人员和开发人员。 使用场景及目标:① 工业制造中的设备故障预测和质量控制;② 金融分析中的市场价格预测和风险管理;③ 环境监测中的气候变化和空气质量预测。该框架的目标是提高预测精度,优化模型参数,缩短训练时间,增强模型泛化能力。 阅读建议:本文不仅详细介绍了理论背景和技术细节,还提供了实际操作的代码和 GUI 设计思路,建议读者在阅读过程中结合实际数据和代码进行实验,以更好地理解和掌握相关技术。

    Java系统源码+社区养老服务系统

    Java系统源码+社区养老服务系统 内容概要: 本资源包含了完整的Java前后端源码及说明文档,适用于想要快速搭建并部署Java Web应用程序的开发者、学习者。 技术栈: 后端:Java生态系统,包含Spring Boot、Shiro、MyBatis等,数据库使用Mysql 前端:Vue、Bootstrap、Jquery等 适用场景示例: 1、毕业生希望快速启动一个新的Java Web应用程序。 2、团队寻找一个稳定的模板来加速产品开发周期。 3、教育机构或个人学习者用于教学目的或自学练习。 4、创业公司需要一个可以立即投入使用的MVP(最小可行产品)。

    Java系统源码+健身房管理系统

    Java系统源码+健身房管理系统 内容概要: 本资源包含了完整的Java前后端源码及说明文档,适用于想要快速搭建并部署Java Web应用程序的开发者、学习者。 技术栈: 后端:Java生态系统,包含Spring Boot、Shiro、MyBatis等,数据库使用Mysql 前端:Vue、Bootstrap、Jquery等 适用场景示例: 1、毕业生希望快速启动一个新的Java Web应用程序。 2、团队寻找一个稳定的模板来加速产品开发周期。 3、教育机构或个人学习者用于教学目的或自学练习。 4、创业公司需要一个可以立即投入使用的MVP(最小可行产品)。

    阵列信号处理-MUSIC算法-均匀线阵-幅相误差-信噪比变化

    阵列信号处理中,均匀线阵条件下,分析不同信噪比条件下,幅相误差对于测向角度偏差的影响

    Python项目-游戏源码-07 坦克大战.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

    Python项目-实例-04 简易时钟.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

    瓶罐检测26-CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar

    瓶罐检测26-CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rarDetectResiduos-V1 2024-02-24 3:32 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括6821张图像。 工具以创建格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 应用以下扩展来创建每个源图像的3个版本: *水平翻转的50%概率 *垂直翻转的50%概率 * -15和+15度之间的随机旋转 * 0到1.5像素之间的随机高斯模糊

    名片管理系统.pdf

    名片管理系统.pdf

    瓶子检测3-YOLOv9数据集合集.rar

    瓶子检测3-YOLOv9数据集合集.rarMY_DATASET11-V1 2022-12-28 1:46 AM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括1001张图像。 塑料 - 玻璃金属纸纸以yolov9格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整到224x224(拉伸) 没有应用图像增强技术。

    水瓶瓶罐检测58-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar

    水瓶瓶罐检测58-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rarQaldyq Suryptau-V2 2024-02-26 8:05 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括2328张图像。 以可可格式注释了金属 - 柔性 - plastmassa-qaldyq。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为416x416(拉伸) 应用以下扩展来创建每个源图像的3个版本: *随机裁剪图像的0%至10% * -15和+15度之间的随机旋转 *随机的BRIGTHNESS调整-10%至+10% * -7%至 +7%之间的随机暴露调整

    Python项目-自动办公-05 在Excel表格中将上下行相同内容的单元格自动合并.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

    基于ssm的精品酒销售管理系统+jsp源代码(完整前后端+mysql+说明文档+LW).zip

    使用精品酒销售管理系统的用户分管理员和用户两个角色的权限子模块。 管理员所能使用的功能主要有:主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等。 用户可以实现主页、个人中心、我的收藏管理、订单管理等。 前台首页可以实现商品信息、新闻资讯、我的、跳转到后台、购物车等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

    1_io_thread_1734442494401.wmv

    1_io_thread_1734442494401.wmv

    一个基于Java Web的在线问卷调查系统源码实例

    java 一个基于Java Web的在线问卷调查系统源码实例 一个基于Java Web的在线问卷调查系统源码实例

    基于ssm的在线项目众筹平台源代码(完整前后端+mysql+说明文档+LW).zip

    网站前台注重的功能实现包括会员注册、系统公告、项目查看、在线留言、关注收藏项目、众筹项目申请,网站后台注重的功能实现包括系统用户管理、用户注册审核、项目类别管理、项目信息管理、投资申请查看、投资申请审核、申请结果反馈。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

    毕业设计的概要介绍与分析

    以下是一个关于毕业设计的资源描述和项目源码的简要概述: 资源描述 该毕业设计项目为一个基于Spring Boot的在线学习系统。该项目使用了丰富的资源来确保项目的顺利完成。首先,通过数字图书馆和在线数据库(如谷歌学术)获取了大量的相关文献和最新研究成果,为项目的理论基础提供了坚实的支撑。其次,参考了一些电子书籍和国内外教程资源,学习了相关的开发技巧和最佳实践。此外,项目还利用了Spring Boot、MyBatis等开源框架,以及MySQL数据库,这些资源大大提高了开发效率和系统的稳定性。 在开发过程中,还参与了线上和线下的技术培训和研讨会,与其他开发者交流经验,解决了一些技术难题。这些活动不仅提供了宝贵的学习机会,还帮助更好地理解了项目的需求和实现方式。 项目源码概述 该项目源码主要包括以下几个部分: 后端代码:基于Spring Boot框架,实现了用户管理、课程管理、在线学习、模拟考试等功能。 前端代码:使用HTML、CSS和JavaScript(可能使用Vue.js或React.js)等技术,构建了友好的用户界面,使用户能够方便地浏览课程、进行在线学习和考试。 数据库脚本

    xshell与xftp插件

    如果在运维环境中,尤其是乙方,甲方客户为了安全一般不允许上传破解/绿色版等运维软件,这时候如果有官网下载的运维工具且是免费的,那不就可以正常使用了。 8款软件,显示版本到6,以后可不可以不清楚,现在我用绿色版用不上这个。 包含:xfile、xftp、xlpd、xmanager、xmanager 3d、xmanager powersuite、xshell、xshell plus

    广东省深圳市公司申请助理级职称的主要步骤

    广东省深圳市公司申请助理级职称的主要步骤

    杂货产品检测43-YOLO(v5至v9)、CreateML、Paligemma、TFRecord、VOC数据集合集.rar

    杂货产品检测43-YOLO(v5至v9)、CreateML、Paligemma、TFRecord、VOC数据集合集.rarIPCV分配-V6 2024-01-21 6:10 PM ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包括7012张图像。 家庭废物以createMl格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 没有应用图像增强技术。

Global site tag (gtag.js) - Google Analytics