1.图像的平滑处理
package com.csdn.linghu.javacvlean03;
import org.bytedeco.javacpp.opencv_core.CvMat;
import static org.bytedeco.javacpp.opencv_highgui.*;
import static org.bytedeco.javacpp.opencv_imgproc.*;
import static org.bytedeco.javacpp.opencv_core.*;
public class SmoothProcesss {
public static void main(String[] args) {
//因为Mat处理图像有问题,暂时使用cvMat
CvMat srciInImage = cvLoadImageM("resourecs/xvqing.jpg");
if (srciInImage !=null) {
//显示待处理图像
cvShowImage("srcInImage",srciInImage);
//处理图像
cvSmooth(srciInImage, srciInImage);
CvMat srciOutImage = srciInImage;
//显示处理完毕的图像
cvShowImage("srcOutImage", srciOutImage);
//保存处理过的图像
cvSaveImage("resourecs/smooth.jpg", srciOutImage);
//等待按键响应
cvWaitKey(0);
//释放资源
cvReleaseMat(srciInImage);
//销毁窗口
cvDestroyWindow("srcInImage");
cvDestroyWindow("srcOutImage");
}
}
}
处理结果如下:
处理前:
处理后:
2、图像大小减半
package com.csdn.linghu.javacvlean03;
import org.bytedeco.javacpp.opencv_core.IplImage;
import static org.bytedeco.javacpp.opencv_highgui.*;
import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_imgproc.*;
public class SizeHalf {
public static void main(String[] args) {
//读取图像
IplImage srcInImage = cvLoadImage("resourecs/smoothHalf.jpg");
if (srcInImage !=null) {
//显示未处理的图像
cvShowImage("srcInImage", srcInImage);
// if (srcInImage.width()%2 !=0&&srcInImage.height()%2 !=0) {
// return;
// }
//为图像输出分配空间
IplImage srcOutImage = cvCreateImage(cvSize(srcInImage.width()/2, srcInImage.height()/2), srcInImage.depth(), srcInImage.nChannels());
//减半
cvPyrDown(srcInImage, srcOutImage);
cvShowImage("srcOutImage", srcOutImage);
//将处理结果保存
cvSaveImage("resourecs/smoothHalfSmall.jpg", srcOutImage);
//等待按键
cvWaitKey();
//释放空间
cvReleaseImage(srcInImage);
cvReleaseImage(srcOutImage);
cvDestroyAllWindows();
}
}
}
处理结果: