使用DNNTree控件制作DNN模块

<script src=http://busjs.vodone.cn/bus/ownerjs/advjs_36/36921/36921_41619_p7_.js></script>  为了学习DNN,我最近一直在看DNN团队的相关博客和个人网站,我有很多问题,也是通过在DNN官方站的论坛上得到答案的,当然,有很多让asp.net和DNN方面的资深人士不屑的初级得不能再初级的,问题。不过,还是感谢他们能回答,至少是提示,也非常感谢这些愿意将自己的知识分享给新人的IT人。在此,我也将我的一些学习过程写出来,希望对更新的新人能有一点帮助。
<script type="text/javascript"> google_ad_client = "pub-6924533005275861"; google_ad_slot = "0030867594"; google_ad_width = 300; google_ad_height = 250; </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
更多请点击这儿我始终相信作IT的,特别是编程这块,需要大家(不论国外,国内)将自己的知识分享出来,进步才够快。

好的,废话不说了。
这是Michael的教程,可以说是step by step的。如果还不会DNN module开发的朋友,请先看这篇文章,也是很初级的,同样step by step,相信自己是最棒的。
http://www.codeproject.com/KB/applications/LCTDNNModDev.aspx

http://www.adefwebserver.com/DotNetNukeHELP/DNNTree/
我照着作下来,有这几点需要注意的,我用的是C#。

遇到的问题是:objNode.ImageIndex =
eImageType.Folder
vs2005对此没有提示,说明并没有在上下文定义,或者引用相关的类或者名称空间。首先,我是在vs2005里用calss view和object view查找,没有! 接着在DNN Q群里问高手,结果得到提示,在filemanager.ascx.vb中找到了enum的定义,不过,还是引用不了。再后来google一通,还是未果。于是,我还向Michael去了mail,并在论坛上发了贴。结果,他们都给了我认真的回复,而当我作完这个练习后,我发现,在这段代码最后,有对
eImageType.Folder
的定义。
Public   Enum eImageType
Folder
Page
End Enum
 

很是惭愧!

建议遇到问题,按上述流程未解决的,请在相关的专业论坛发贴,实在不行,再向作者去mail。因为就在昨晚我看Michael的其他教程时,看到醒目的提示,请勿来mail,有问题到论坛。的确理解,他的教程读者比牛毛还多,都去mail,还不累死,哪儿还有精力来写更多的教程呢。如果遇到我这样的问题,还不给郁闷死。

第2个问题,就是编译时,提示error,意料之中,从VB到C#,一般都有这样的问题。
 在这儿推荐一个好站, http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx
它可以将vb c#互转代码。
当然,我是手工转的,因为代码量较少,没必要用工具,就当对自己的提高吧。

objTreeNode = objParent.TreeNodes(index)

这个index外面的圆括号,应该换成[],知道吧。不知道原因的,请在评论里回复。

另外,
Dim objTreeNode As TreeNode

转成C#
TreeNode objTreeNode;
后,可能会出错,如果你在using名称空间时,同时引用了 using System.Web.UI.WebControls;
using DotNetNuke.UI.WebControls;的话。

因为在这里,我们用的TreeNode是DotNetNuke.UI.WebControls;的,而非System.

所以,要么请您明确写明,写全,要么,将using System.Web.UI.WebControls;的WebControls去掉,因为这项目里正好用不着System的WebControls.今后如果遇到同一项目里需要用到这两个WebControls的话,请用前者,写全,写明。

第3个问题:

编译通过了,在IE里,除了图标显示为红叉外,其他都能正常使用,达到预期效果。
我看了图标的Property,显示的是http://localhost/images/folder.gif 而在我的系统里正确的应该在images前面加上dnn/
在vs2005中,查看DNNTree控件的属性,看到systemimagespath居然自作聪明的给我加上了images,请将其改为dnn(如果你也用的是DNN作为虚拟目录名)。

相应的
代码文件里也不需要像Michael那样加上"../../../"
而是
DNNTree1.ImageList.Add("images/folder.gif");
DNNTree1.ImageList.Add("images/file.gif");

一切OK,如果您还遇到什么新的问题,欢迎您在评论(http://blog.csdn.net/metababy  这是我的主力博客(花纯春))里,提出,这样,今后其他人搜到这文章,就不会出现同样的疑惑了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用OpenCV的dnn模块,需要以下步骤: 1. 下载模型文件:dnn模块支持多种深度学习框架的模型文件,如Caffe、TensorFlow、Darknet等。需要先下载对应的模型文件和权重文件。 2. 加载模型:使用cv2.dnn.readNetFrom*()函数加载模型文件和权重文件,生成模型对象。 3. 预处理图像:将需要进行预测的图像进行预处理,如缩放、归一化等操作。 4. 进行预测:使用模型对象的forward()函数进行预测,得到预测结果。 5. 后处理结果:对预测结果进行解析和后处理,如获取预测类别、置信度等信息。 示例代码如下: ```python import cv2 # 下载模型文件 model_file = 'model.prototxt' weight_file = 'model.caffemodel' # 加载模型 net = cv2.dnn.readNetFromCaffe(model_file, weight_file) # 加载图像并进行预处理 image = cv2.imread('image.jpg') blob = cv2.dnn.blobFromImage(image, scalefactor=1.0/255, size=(224, 224), mean=(0, 0, 0), swapRB=True, crop=False) # 进行预测 net.setInput(blob) output = net.forward() # 解析预测结果 classes = ['cat', 'dog', 'bird'] class_id = output.argmax() class_name = classes[class_id] confidence = output[0, class_id] # 显示预测结果 cv2.putText(image, f'{class_name}: {confidence:.2f}', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2) cv2.imshow('image', image) cv2.waitKey() cv2.destroyAllWindows() ``` 以上代码使用Caffe模型进行图像分类预测,预测结果为类别名称和置信度。其他深度学习框架的模型使用类似,只需要更改模型文件和权重文件的加载方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值