opencv和python下,运行对图片的读取程序时出现的问题!!!

作者&投稿:尚盲 (若有异议请与网页底部的电邮联系)
ubuntu 下安装了opencv 和 python,可是运行程序时,总出现下面的问题?~

看了你的错误,很明显你连linux下运行python脚本都不熟悉,首先你的python test.py这个命令不能在python环境下执行。。要执行的话也可以,直接import test就可以,要确定test文件路径

整个项目的结构图:

编写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("
Running 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("
Running 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

1、需要用到其他模块的函数,如:

for i in range(20) #循环次数

image=cv2.imread("D:\\picture\\%d.jpg"%(i))#路径自己选择。

2、可以先升级你的pip,另外看看你的版本是否匹配,包括py版本和32位64位。

3、关于python下使用opencv读取图像。首先需要导入opencv包,上面说的那个Ipython并没有opencv包,所以想使用的请先正确导入opencv包再说,至于怎么导入,先下载个opencv包,里面有关于python的opencv包。 
以下照片是关于Ipython的运行界面:



我的天,实在太乱了。

看起来像是图像读取失败。
test.py跟abc.jpg在同一个目录下吗?

把所有的文件和库都安装到没有中文的路径下去。


刚察县18963515859: 如何在Python中使用OpenCV的 -
守审芙新: 0.下载安装Opencv,当前版本为249.1.下载Python,当前OPencv版本为249,不过其支持的最新版本的Python为2.7,所以可以下载276版本.2.下载numpy,下载最新的1.8.1版本.3.将Opencv安装目录下opencv\build\python\2.7\x86中的cv2.pyd复制到python安装目录Lib\site-packages下.4.找到opencv源文件内的draw.py运行.~如果你认可我的回答,请及时点击【采纳为满意回答】按钮 ~~手机提问的朋友在客户端右上角评价点【满意】即可.~你的采纳是我前进的动力 ~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢.

刚察县18963515859: Python和opencv怎么用,求用图解释 -
守审芙新: opencv显示图像要把图像放在工程文件的debug 目录里; OpenCV的全称是:Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上.它轻量级而且...

刚察县18963515859: opencv和python下,对图片的读取程序报错如何解决? -
守审芙新: 1、需要用到其他模块的函数,如:for i in range(20) #循环次数 image=cv2.imread("D:\\picture\\%d.jpg"%(i))#路径自己选择.2、可以先升级你的pip,另外看看你的版本是否匹配,包括py版本和32位64位.3、关于python下使用opencv读取图像.首先需要导入opencv包,上面说的那个Ipython并没有opencv包,所以想使用的请先正确导入opencv包再说,至于怎么导入,先下载个opencv包,里面有关于python的opencv包. 以下照片是关于Ipython的运行界面:

刚察县18963515859: 如何用python调用opencv2.4.6 -
守审芙新: import cv2.cv as cv 即可. 如果不会安装,就安装pythonxy安装包,里面就有opencv.

刚察县18963515859: python怎么安装opencv -
守审芙新: 先到文末下载OpenCV的安装包.其实这个安装包就是一个解压缩. 多图 2 我们在安装包解压的目录找到这个文件 3 把这个文件拷贝到Python的包安装目录下面 4 在Python的shell导入cv2模块试试,看是不是安装好了.结果提示还需要安装一个依赖包 5 好吧,还好之前有这个numpy的安装包,直接安装 多图 6 好了,现在再试一下.搞定.

刚察县18963515859: Linux下怎么配置python和opencv -
守审芙新: 以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支持,首先在安装OpenCV前安装必要的组件,一般列表如下:1、gcc g++一般系统自带2、cmake 编译...

刚察县18963515859: 安装opencv为什么一定要同时安装python -
守审芙新: 一个库就像一个工具箱,你需要去调用它,也就是自己编写代码去使用,那么,用c 语言 c++ matlab 都可以.当然Python 也可以,只要库提供了改需要的接口.Python 不是必装的,但是可能Python 比较好用 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法.

刚察县18963515859: mac系统如何在python上配置opencv -
守审芙新: 这条指令在linux上面可以添加到 /etc/profile文件中 .然后在终端中执行 source /etc/profile 或者重启.mac 是基于unix系统 应该也差不多.路径应该这么设置吧? export PYTHONPATH=/usr/local/lib/python2.7:$PYTHONPATH 然后python自己就可以查找到site-packages包路径了.另外在python中用opencv的话 还应该安装 numpy这个python库 记得给分点赞啊!

刚察县18963515859: ubutun下opencv3.0+python 2.7安装完毕,打开python需要用什么命令吗 -
守审芙新: 步骤一: 安装依赖. 不管你是用 Python 2.7+ 还是 Python 3+, 你都需要用 apt-get 来安装 安装Open CV 所需要的包,库等依赖. 步骤二: 编译 Python 2.7+ 版的 Open CV. 如果你准备用 Python 2.7 那么这一步你肯定要做的, 做完之后呢, 你就可以跳过步骤三, 直奔步骤四. 步骤三: 编译 Python 3+ 版的 Open CV. 同样地, 你准备用 Python 3+ 的话, 步骤二是不用做的, 直接从步骤一来到这里. 步骤四: 确认安装成功. 在你安装完成之后, 这一步骤就来确认 Open CV是否安装成功, 能不能正常地工作.

刚察县18963515859: 怎么配置opencv python3.6.1 anaconda -
守审芙新: 电脑系统:win7 64位,(其他系统类似) 关于Anaconda3-4.4.0下配置OpenCV3.2.01.首先官网下载最新版本的Anaconda3-4.4.0(基于自己的电脑选择32位或64位),该版本已经支持最新的Python3.6;注意:安装过程中:1)安装路径可以改...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网