Java 将IplImage转换为BuffereImage以集成

Java 将IplImage转换为BuffereImage以集成,java,image,image-processing,face-detection,Java,Image,Image Processing,Face Detection,我正在制作自己的图像处理应用程序,完全在BuffereImage中运行。 现在我在[OpenShift.com]的博客上偶然发现了一个人脸检测代码 现在,我想将该代码集成到我自己的GUI应用程序中。但由于人脸检测器代码的问题,图像是iplImage对象的一个实例,因此我需要首先将缓冲图像转换为iplImage,以便该方法接受现在转换的图像。 请帮忙。。 我将在人脸检测代码下离开 public class FaceDetection{ //Load haar classifier XML

我正在制作自己的图像处理应用程序,完全在BuffereImage中运行。 现在我在[OpenShift.com]的博客上偶然发现了一个人脸检测代码 现在,我想将该代码集成到我自己的GUI应用程序中。但由于人脸检测器代码的问题,图像是iplImage对象的一个实例,因此我需要首先将缓冲图像转换为iplImage,以便该方法接受现在转换的图像。 请帮忙。。 我将在人脸检测代码下离开

public class FaceDetection{

    //Load haar classifier XML file
    public static final String XML_FILE = 
            "C:\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt2.xml";

    public static void main(String[] args){

        //Load image
        IplImage img = cvLoadImage("C:\\Users\\The Blue Light\\Desktop\\13.jpg");       
        detect(img);        
    }   

    //Detect for face using classifier XML file 
    public static void detect(IplImage src){

        //Define classifier 
        CvHaarClassifierCascade cascade = new CvHaarClassifierCascade(cvLoad(XML_FILE));

        CvMemStorage storage = CvMemStorage.create();

        //Detect objects
        CvSeq sign = cvHaarDetectObjects(
                src,
                cascade,
                storage,
                1.5,
                3,
                CV_HAAR_DO_CANNY_PRUNING);

        cvClearMemStorage(storage);


        int total_Faces = sign.total();     

        //Draw rectangles around detected objects
        for(int i = 0; i < total_Faces; i++){
            CvRect r = new CvRect(cvGetSeqElem(sign, i));
            cvRectangle (
                    src,
                    cvPoint(r.x(), r.y()),
                    cvPoint(r.width() + r.x(), r.height() + r.y()),
                    CvScalar.CYAN,
                    2,
                    CV_AA,
                    0);

        }

        //Display result
        cvShowImage("Result", src);
        cvWaitKey(0);

    }           
}
公共类人脸检测{
//加载haar分类器XML文件
公共静态最终字符串XML_文件=
“C:\\opencv\\sources\\data\\haarcascades\\haarcascade\u frontalface\u alt2.xml”;
公共静态void main(字符串[]args){
//加载图像
IplImage img=cvLoadImage(“C:\\Users\\theblue Light\\Desktop\\13.jpg”);
检测(img);
}   
//基于分类器XML文件的人脸检测
公共静态空隙检测(IplImage src){
//定义分类器
CvHaarClassifierCascade cascade=新的CvHaarClassifierCascade(cvLoad(XML_文件));
CvMemStorage=CvMemStorage.create();
//检测对象
CvSeq sign=cvhaardeticobjects(
src,
大量
存储
1.5,
3.
CV_HAAR_DO_CANNY_修剪);
cvClearMemStorage(存储);
int total_Faces=sign.total();
//在检测到的对象周围绘制矩形
对于(int i=0;i
IplImage image=IplImage.createFrom(您的bufferedimage)

谢谢@Marco13
正是我需要的

当然有很多事情可能会出错,但是如果您已经尝试调用
IplImage\getBufferedImage()
,那么您应该描述出哪里出了问题。否则。。。试试看;-)IplImage#GetBuffereImage()是将源IplImage转换为BuffereImage的inbuild方法吗?不,它不起作用。哦,天哪!(戏剧性地说:)那你就完蛋了!不,说真的,你应该更清楚地描述你到目前为止所做的尝试,以及它以何种方式“不起作用”。标题是“将IplImage转换为BuffereImage”,文本是“将缓冲图像转换为IplImage”,您没有提到任何尝试或错误消息。(我不确定我是否能帮到你,但你几乎没有提供足够的信息给任何人来帮助……)这是一个加载jpg文件的类,它创建IplImage对象的实例并检测面。(此代码有效)现在我想将此代码与我的GUI集成,但问题是我的GUI接受并在BuffereImage上工作。我需要知道如何在我的gui上调用方法,该方法将参数作为IplImage,该gui在BuffereImage上工作,因此需要首先将我的BuffereImage转换为IplImage,然后将图像传递到此方法中。我不知道如何转换它。