`

1.颜色提取并标记外接矩形

阅读更多

// 读取图像
        Mat image = Imgcodecs.imread("2023.jpg");
        // 将图像转换为HSV格式
        Mat hsv = new Mat();
        Imgproc.cvtColor(image, hsv, Imgproc.COLOR_BGR2HSV);
        // 定义颜色范围(例如:蓝色)
        Scalar lowerBlue = new Scalar(100, 50, 50);
        Scalar upperBlue = new Scalar(130, 255, 255);
        // 创建掩码并应用
        Mat mask = new Mat();
        Core.inRange(hsv, lowerBlue, upperBlue, mask);
        // 查找掩码中的轮廓
        List<MatOfPoint> contours = new ArrayList();
        Imgproc.findContours(mask, contours, new Mat(), Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
        List<MatOfPoint> selectList = new ArrayList();
        int len = contours.size();
        for(int i=0;i<len;i++){
            MatOfPoint2f point = new MatOfPoint2f();
            point.fromList(contours.get(i).toList());
            double zc = Imgproc.arcLength(point, true);
            if(zc>450 && zc < 510){
                double area = Imgproc.contourArea(contours.get(i));
                if(area> 4000 && area < 4500) {
                    selectList.add(contours.get(i));
                    System.out.println("zc: "+zc+",area: "+area);
                }
            }
        }
        System.out.println(selectList.size());
        Imgproc.drawContours(image, selectList, -1, new Scalar(0, 255, 0), 5);
        Imgcodecs.imwrite("2023-in3.jpg", image);



System.load("opencv_java455.dll");
   Mat
   Rect
   Imgproc
   Imgcodecs
   Size
   Core
   Scalar
   List<MatOfPoint> contours = new ArrayList()
   边缘检测
   Imgproc.Canny
   周长
   Imgproc.arcLength
   Imgproc.approxPolyDP
   轮廓
   Imgproc.findContours
   外围矩形
   Rect rect = Imgproc.boundingRect(selectList.get(0))
   裁剪图像
    Rect rect =new Rect(1800, 1400, 800, 500);
    Mat croppedImage = new Mat(img, rect);
高斯模糊
Imgproc.GaussianBlur
颜色空间转换
Imgproc.cvtColor
Imgcodecs.imread
Imgcodecs.imwrite
颜色区域提取
Core.inRange
Core.bitwise_and
Core.subtract
取反
Core.bitwise_not
BFMatcher
FeatureDetector.create(FeatureDetector.SIFT)
加载Haar分类器
    CascadeClassifier faceDetector = new CascadeClassifier("haarcascade_frontalface_alt2.xml");
检测面部
faceDetector.detectMultiScale
MatOfRect
画矩形
Imgproc.rectangle
new Point(rect.x + rect.width, rect.y + rect.height)
去噪处理
    Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3));
开运算
    Imgproc.morphologyEx(binary, binary, Imgproc.MORPH_OPEN, kernel);
    Imgproc.morphologyEx(binary, binary, Imgproc.MORPH_CLOSE, kernel);
Imgproc.matchTemplate
归一化
Core.normalize(bsrc, normalizedPoints, 0, 120, Core.NORM_MINMAX)
Imgproc.resize
分离前景  区域分割
Imgproc.grabCut
Imgproc.calcHist
Core.split
Imgproc.equalizeHist
Core.merge
Imgproc.threshold
Imgproc.erode
Imgproc.dilate
图像压缩
Imgproc.pyrDown

scale:用于调整图像的大小。
crop:用于裁剪图像。
rotate:用于旋转图像。
drawtext:用于在图像上添加文本。
watermark:用于在图像上添加水印。
convert:用于转换图像的颜色空间。
format:用于改变图像的格式。
colorspace:用于改变图像的颜色空间。
brightness:用于调整图像的亮度。
contrast:用于调整图像的对比度。
gamma:用于调整图像的gamma值。
hue:用于调整图像的色相。
saturation:用于调整图像的饱和度。
luminance:用于调整图像的亮度。
ssim:用于计算图像的 SSIM 质量指数。
psnr:用于计算图像的 PSNR 质量指数。


img.flatten()
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics