编写DetectFaceDemo.java,代码如下:
[java] view
plaincopyprint?
package com.njupt.zhb.test
import org.opencv.core.Core
import org.opencv.core.Mat
import org.opencv.core.MatOfRect
import org.opencv.core.Point
import org.opencv.core.Rect
import org.opencv.core.Scalar
import org.opencv.highgui.Highgui
import org.opencv.objdetect.CascadeClassifier
//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo")
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath())
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath())
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath())
//注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我们将第一个字符去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1)
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath)
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1))
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect()
faceDetector.detectMultiScale(image, faceDetections)
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length))
// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0))
}
// Save the visualized detection.
String filename = "faceDetection.png"
System.out.println(String.format("Writing %s", filename))
Highgui.imwrite(filename, image)
}
}
package com.njupt.zhb.test
import org.opencv.core.Core
import org.opencv.core.Mat
import org.opencv.core.MatOfRect
import org.opencv.core.Point
import org.opencv.core.Rect
import org.opencv.core.Scalar
import org.opencv.highgui.Highgui
import org.opencv.objdetect.CascadeClassifier
//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo")
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath())
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath())
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath())
//注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我们将第一个字符去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1)
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath)
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1))
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect()
faceDetector.detectMultiScale(image, faceDetections)
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length))
// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0))
}
// Save the visualized detection.
String filename = "faceDetection.png"
System.out.println(String.format("Writing %s", filename))
Highgui.imwrite(filename, image)
}
}
3.编写测试类:
[java] view
plaincopyprint?
package com.njupt.zhb.test
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV")
// Load the native library.
System.loadLibrary("opencv_java246")
new DetectFaceDemo().run()
}
}
//运行结果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
package com.njupt.zhb.test
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV")
// Load the native library.
System.loadLibrary("opencv_java246")
new DetectFaceDemo().run()
}
}
//运行结果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
这两者的区别在于Viz是面向工程设计的,而Max是面向动画设计的。Viz具有许多Max不具备的特性,而这些特性又是从事工程设计必不可少的。Viz既可用于建模又可用来渲染,它是集建模与渲染为一体的软件。应该说,Viz具有强大的建筑工程建模能力,其次,它具有非常强的直观性。K? z鵩~2可视化室内设计系统Vid2000R3.5是中国大恒基于3DS Viz平台上二次开发的软件。它增加了符合中国国情的数十种专业设计功能。?ET畈?
渲染用Lightscape.Lightscape是当今世界最杰出的渲染软件,其中文名称为渲染巨匠。Lightscape最优秀的特点是对光线的处理。由于它具有光影跟踪,光能计算两大技术,所以它能够模拟真实的自然光计算每一块受光面积的受光量。五逩髙yb|
其次,一次计算后,再换材料、光源、角度,不用重新计算。这就是全息渲染技术。 d毁Lightscape特别适合室内效果图的渲染。
概述:
3DS VIZ是Autodesk今年对工程设计用户的新奉献之一,它也是基于3DSMAX的母体技术而派生出的一项新产品,主要用于概念化设计和可视化设计。 镜3DS MAX软件主要面向电子游戏开发商和影视动画制作商,虽然它也能成功地用于工程设计(AEC)行业的渲染制作,但不适于在AEC行业进行初始化造型及工业产品的概念化设计。?魩f刜硴
当然,3DS MAX提供的各种动画功能远远超过AEC行业对动画漫游的需要,但它缺乏面向AEC行业的建模工具(如窗、门、屋顶等),而且也不适于建立精确的模型。?悔?3d(
其他一些软件厂商有一体化解决方案的产品,但要么迫使设计者携带大量的数据和 *** 作步骤进行工作,其难度加大和效率降低。3DS VIZ是面向建筑、工程、结构(AEC)和工业设计市场的一种用于三维概念化设计和可视化设计的极好工具。此产品代表着Autodesk在该领域的产品策略,它将成为一种新的开发平台,用于开发那些需要可视化及设计概念交流的应用软件。
3DS VIZ会进一步加强提高Autodesk现有的规模巨大的AutoCAD软件市场。? ぜ??
3DS VIZ首先提供两种版本:一是AutoCAD R14专版,为AutoCAD R14用户提供。另一种是可完全独立运行的3DS VIZ软件。 邻0昅櫾羛?
许多人非常想知道3DS MAX和3DSVIZ这两种软件的主要区别,为此我们列出下表以示说明。 5
特性比较表
造 型
MAX VIZ l
标准几何体能能拉伸物体(Loft objects)
切片物体(Patch objects) 能 能
复合物体(Compound objects) 能 能
(只包括Boolean运算)
2D/2.5D/3D捕捉 能 能
二维多义线 (2D Spline Shapes) 能 能 r
灯光和相机 (Lights &Cameras) 能 能
空间变形(Space Warps) 能 能
(只有路径变形和贴图变比)
构造平面和虚拟物体 能 能
弯曲/拉伸等 能 能
镜像/阵列/对齐 能 能
剖面二维输出工具 否 能 ?
粒子系统(Particle Systems) 能 否 碤
拖拽功能(Drag and Drop) 否 能
物体捕捉(Osnaps) 否 能
参数化门窗设计 否 能
二维多义线的修园/倒棱和剪切/延长 否 能
动 画 E
MAX VIZ
移动,旋转,变比动画 能 能
子物体动画 能 否
反向动力学(Invers Kinematics) 能 否 3
渲 染
MAX VIZ
扫描线渲染(Scanline Rendering) 能 能
影象合成(Video Post) 能 否
相机匹配(Camera Match) 否 能
可视化设计及特殊材质 否 能
其 他
MAX VIZ
DWG输入输出 能 能
STL输入输出 否 能
软件平台及硬件要求
软件平台:Windows NT 3.51,4.0和Windows95/98/2000(中、英文版)
硬件要求:
CPU: Pentium 90 或更高 推荐Pentium Pro、Pentium Ⅱ、Pentium Ⅲ
内存: 32M或更高 推荐64M--128M
硬盘: 1G或更高 交换空间300M
图形加速卡: 2M VRAM或更高 推荐三维加速卡如
GLINT300 500TX图形卡等
部分功能纵览
艺术设计师们需要一种能够理解他们的设计构想并随时能与之沟通的的计算机软件,3DS VIZ就是这样的软件。其特点就是直接面向建筑师和相关专业的设计师与其他竞争对手不同,Autodesk的Kinetix分公司能直接把三维多媒体新技术转移到固设计行业,使已在影视及交互式游戏制作业中非常著名的三维可视化技术成为工程设计师的强大设计工具。
即时反馈:
3DS VIZ的一个显著特点是对形状、动画、材质贴图都可以随时地预视及控制。
3DS VIZ使用了Autodesk的HEIDI图形加速技术,在不需特别硬件资源的情况下,可在三维环境中极好的即时反馈,这种模型、动画的即时反馈使设计师的想法和设计中的产品随便比较,充分发挥其想象力和创造力。
见过3DS MAX的人都知道它是一种完全交互的环境,而3DS VIZ也会使设计师能够使用这种先进的软件技术。
材质编辑器:
在装饰和建筑设计中,无论是建砖墙、铺红地毯或用墙纸贴墙,3DS VIZ的材质编辑器都能帮你创造精彩的效果。其强有力的工具可以让你随意控制色彩图、自发光、不透明、凹凸、反射/折射,或者应用位图的主从材质效果而且还可用程序来控制效果。所有材质效果可用微调钮或其它图标工具控制,材质被激活后便可在材质编辑器中改变此材质,其变化立即反映到屏幕中被赋予此材质的物体上。
3DS VIZ的软件中有50种新的工程设计(AEC)特殊材质,当应用这些材质时,它们被设计成平铺模式。
这些材质附带着数百种位图及程序效果,材质编辑器可随时让你在屏幕上监视和控制贴图及材质。
参数化的门窗设计:
3DS VIZ包括一类物体插入集合,这是特别为建筑师和室内设计师加快门窗设计过程而制造的。
设计师能够选择六种窗(玻璃窗、翻转窗、凸出窗、固定窗、滑动窗、雨蓬窗)和几种门(固定轴门、滑动门、折
叠门)。这些门窗可完全被参数化,随着高、宽等值的变,三维物体也立即随之改变。但这些参数不只是简单的尺寸,它们还包括大小、结构、竖框轮廓、及围栏和装饰等。
3DS VIZ主要特点
3DS MAX软件主要面向电子游戏开发商和影视动画制作商,虽然它也能成功地用于工程设计(AEC)行业的渲染制
作,但它缺乏面向AEC行业的建模工具(如窗、门、屋顶),而且也不适于建立精确的模型。
许多设计师可能要创造他们自己的门窗或者用.dwg格式输入,这些特殊的门窗可很容易地在3DS VIZ中形成。
在这个功能中为工程设计(AEC)所设计的材质可赋予门和窗,这些材质将赋予门窗相应的位置,如玻璃、围栏、装饰、内框、外框等。用户可用3DS VIZ提供的、也可用自己制作的材质迅速预示其效果。
剖面功能:
应用剖面功能,用户可在屏幕的任何方向生成简明的平面,其几何体的二维横切面会立刻出现。这个平面可被任意拖动或旋转到一个新位置,横切面会随平面的变化不断的更新。
在3DS VIZ中的所有物体剖面可被复制或阵列,还可同时显示已有的众多剖面。
任何横切面都能直接输出到AutoCAD软件中,或可作为底图传给其他3DS VIZ模型进行二维 *** 作。
新的二维特性:
3DS VIZ第一次在3DS平台上使用了二维CAD产品的一些功能,使其三维造型和渲染更加精确、更具效率。
当然3DS VIZ不能替代CAD产品,它的概念化设计功能和灵巧的 *** 作特性对AutoCAD也是一种补充。
因此它们在设计、预视及文件数据等方面是相互补充和相互增强的。
设计师利用3DS VIZ新的剪切/延长特性可以快速简便地对二维线进行修改,同时交互式的修圆/倒棱特性可让设计师随意设计边角,并可立即看到效果。如果墙和隔墙只能用单线设计时,增强的墙线变双功能可让你精确的赋值以使单线变双线。
相机匹配:
在许多工程设计里,最好能在真实的背景下进行设计,背景图象可以通过扫描照片及数字相机现场拍照很容易实,但困难的是在设计中把你的透视角度同背景图象的透视角度完美地结合。
3DS VIZ通过相机匹配功能使这一复杂的工作简化,并创造出一种背景图象与计算机的效果图极好结合的合成图象。
当使用者把背景图象中的几个点的物理坐标定义后,相机匹配会自动使之调正,这种从背景图象到相机视图的反向调整,可计算相机的焦距、位置点及方向角,且可通过这些设置创造一个新的相机。
3DS VIZ中使用相机匹配可产生极好的效果,它可使任何创造或修改的物体适合背景图象的透视角度。
建筑和土木工程师可利用背景图象进行概念化设计,室内设计师可利用背景图象很容易地安排家俱及设备,产品设计工程师也可用真实的背景进行可视化设计。
拖拽材质:
此功能可让用户建立自己的位图图库,并在屏幕菜单中迅速查阅其图库中的位图,通过小图标可知位图内容和名称。
如果选中某一位图,你只需简单的移动鼠标把图标拖动到想要贴图的物体上,此物体的材质便会立即被基于你拖动的位图所建立的材质改变。
拖拽材质功能可基于各种位图文件类型工作,且用户可很容易地在本地或网络目录下进行配置。
设计者通过拖拽材质可在1分钟内对物体换十几种材质以达到他所满意的效果。
此种工具对建筑师及室内设计师非常有用,他们可不断地对造型变换材质来达到最佳效果,而其 *** 作只是点取鼠标之劳。
拖拽物体:
其形式与内容和拖拽材质是一样的,只不过是把材质换成物体。建筑师及室内设计师可利用此功能建立自己的模型库,还可通过图标对三维模型进行预视。
自动捕捉:
此功能来源于AutoCAD R14中的自动捕捉,形式也类似R14中的自动捕捉。它是一种动态的捕捉,3DS VIZ中新的物体捕捉可应用在物体造型、移动、旋转和编辑物体,使之更快速、更准确、更容易使用。
3D STUDIO VIZ 是3D STUDIO MAX的工程设计版本,动画模块有所减少,增加了参数化建模,摄象机漫游等,它是一个屡获殊荣的面向三维概念化和可视化设计的软件开发环境,既能缩短项目时间又能极大地提高精度,还有助于更新。
当然了,各种楼梯,树木,栏杆,在墙面上直接打洞,以及和AUTOCAD的关联制作等等也是VIZ的比MAX优越的地方总之,他们基本相似,同一公司推出,功能基本相同。但VIZ没有MAX中高级动画功能,只能制作简单的移动,旋转和缩放动画。
软件的缓存、数据存在问题。下载的应用软件不是通过官方网站进行下载安装。进入手机设置-应用程序-找到vizref软件-清理数据缓存。卸载你这个版本的应用软件,清理手机内存空间,再次从官网下载安装应用软件。
vizref,是很好用的绘画参考工具,不会压缩画质。
软件闪退办法:运行程序过多,程序打开过多,没有关闭的话,会大量消耗手机内存,从而造成应用闪退。出现闪退情况,可以先清除内存。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)