待完善
一、图片缩放
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Size ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat resizedImage = new Mat ( ) ; Size size = new Size ( 100 , 100 ) ; opencv_imgproc. resize ( image, resizedImage, size) ; opencv_imgcodecs. imwrite ( "E://app/images/resized.jpg" , resizedImage) ; }
}
二、图片旋转
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Point2f ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat rotatedImage = new Mat ( ) ; double angle = 90.0 ; Point2f center = new Point2f ( image. cols ( ) / 2 , image. rows ( ) / 2 ) ; Mat rotationMatrix = opencv_imgproc. getRotationMatrix2D ( center, angle, 1.0 ) ; opencv_imgproc. warpAffine ( image, rotatedImage, rotationMatrix, image. size ( ) ) ; opencv_imgcodecs. imwrite ( "E://app/images/rotated3.jpg" , rotatedImage) ; }
}
三、边缘检测
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat grayImage = new Mat ( ) ; Mat cannyImage = new Mat ( ) ; opencv_imgproc. cvtColor ( image, grayImage, opencv_imgproc. COLOR_BGR2GRAY ) ; opencv_imgproc. Canny( grayImage, cannyImage, 100 , 200 ) ; opencv_imgcodecs. imwrite ( "E://app/images/edges.jpg" , grayImage) ; opencv_imgcodecs. imwrite ( "E://app/images/edges33.jpg" , cannyImage) ; }
}
四、图像腐蚀
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Size ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat grayImage = new Mat ( ) ; Mat element = opencv_imgproc. getStructuringElement ( opencv_imgproc. MORPH_RECT , new Size ( 15 , 15 ) ) ; opencv_imgproc. erode ( image, grayImage, element) ; opencv_imgcodecs. imwrite ( "E://app/images/eroded.jpg" , grayImage) ; }
}
五、图像膨胀
import org. bytedeco. javacv. Java2DFrameConverter ;
import org. bytedeco. javacv. OpenCVFrameConverter ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Size ; import javax. imageio. ImageIO ;
import java. awt. image. BufferedImage ;
import java. io. File ;
import java. io. IOException ; public class ImageResizer { public static void main ( String [ ] args) { try { BufferedImage img = ImageIO . read ( new File ( "E://app/images/222.jpg" ) ) ; Java2DFrameConverter java2DFrameConverter = new Java2DFrameConverter ( ) ; Mat inputMat = new OpenCVFrameConverter. ToMat ( ) . convert ( java2DFrameConverter. convert ( img) ) ; Mat kernel = opencv_imgproc. getStructuringElement ( opencv_imgproc. MORPH_RECT , new Size ( 15 , 15 ) ) ; Mat outputMat = new Mat ( ) ; opencv_imgproc. dilate ( inputMat, outputMat, kernel) ; Java2DFrameConverter java2DFrameConverterOutput = new Java2DFrameConverter ( ) ; BufferedImage outputImg = java2DFrameConverterOutput. convert ( new OpenCVFrameConverter. ToMat ( ) . convert ( outputMat) ) ; ImageIO . write ( outputImg, "png" , new File ( "E://app/images/output.png" ) ) ; } catch ( IOException e) { e. printStackTrace ( ) ; } }
}
六、裁剪图片
public class ImageResizer { public static void main ( String [ ] args) { Mat src = opencv_imgcodecs. imread ( "E://app/images/111.jpg" ) ; Rect roi = new Rect ( 200 , 100 , 500 , 500 ) ; Rect roi2 = new Rect ( 100 , 100 , 500 , 500 ) ; Mat cropped = new Mat ( src, roi) ; Mat cropped2 = new Mat ( src, roi2) ; opencv_imgcodecs. imwrite ( "E://app/images/output444.png" , cropped) ; opencv_imgcodecs. imwrite ( "E://app/images/output555.png" , cropped2) ; }
}
七、翻转图像
import org. bytedeco. opencv. global. opencv_core ;
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. opencv_core. Mat ; public class ImageResizer { public static void main ( String [ ] args) { Mat src = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat dst = new Mat ( ) ; opencv_core. flip ( src, dst, 1 ) ; opencv_imgcodecs. imwrite ( "E://app/images/output555.png" , dst) ; }
}
八、添加文字
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Point ;
import org. bytedeco. opencv. opencv_core. Scalar ; import static org. bytedeco. opencv. global. opencv_imgproc. FONT_HERSHEY_DUPLEX ; public class ImageResizer { public static void main ( String [ ] args) { Mat image1 = opencv_imgcodecs. imread ( "E://app/images/111.jpg" ) ; String text = "Hello, World!" ; Point textOrg = new Point ( 50 , 50 ) ; opencv_imgproc. putText ( image1, text, textOrg, FONT_HERSHEY_DUPLEX , 2.0 , new Scalar ( 250 ) , 1 , 8 , false ) ; opencv_imgcodecs. imwrite ( "E://app/images/output.png" , image1) ; }
}
九、添加水印
import org. bytedeco. opencv. global. opencv_core ;
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Size ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/111.jpg" ) ; Mat watermark = opencv_imgcodecs. imread ( "E://app/images/666.jpg" ) ; Size size = new Size ( 1000 , 1000 ) ; Mat resizedImage = new Mat ( ) ; Mat waterResizedImage = new Mat ( ) ; opencv_imgproc. resize ( image, resizedImage, size) ; opencv_imgproc. resize ( watermark, waterResizedImage, size) ; Mat image_with_watermark = new Mat ( ) ; opencv_core. addWeighted ( resizedImage, 0.7 , waterResizedImage, 0.3 , 0 , image_with_watermark) ; opencv_imgcodecs. imwrite ( "E://app/images/output.png" , image_with_watermark) ; }
}
十、模糊
import org. bytedeco. opencv. global. opencv_core ;
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Size ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat dst = new Mat ( ) ; opencv_imgproc. GaussianBlur( image, dst, new Size ( 15 , 15 ) , 0 , 0 , opencv_core. BORDER_DEFAULT ) ; opencv_imgcodecs. imwrite ( "E://app/images/output.jpg" , dst) ; }
}
十一、锐化
import org. bytedeco. opencv. global. opencv_core ;
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ;
import org. bytedeco. opencv. opencv_core. Size ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat dst = new Mat ( ) ; Mat sharpen = new Mat ( ) ; opencv_imgproc. GaussianBlur( image, sharpen, new Size ( 0 , 0 ) , 3 ) ; opencv_core. addWeighted ( image, 1.5 , sharpen, - 0.5 , 0 , dst) ; opencv_imgcodecs. imwrite ( "E://app/images/output.jpg" , dst) ; }
}
十二、颜色
import org. bytedeco. opencv. global. opencv_imgcodecs ;
import org. bytedeco. opencv. global. opencv_imgproc ;
import org. bytedeco. opencv. opencv_core. Mat ; public class ImageResizer { public static void main ( String [ ] args) { Mat image = opencv_imgcodecs. imread ( "E://app/images/222.jpg" ) ; Mat dst = new Mat ( ) ; opencv_imgproc. cvtColor ( image, dst, opencv_imgproc. COLOR_RGB2XYZ ) ; opencv_imgcodecs. imwrite ( "E://app/images/output.jpg" , dst) ; }
}