org.opencv.core.Core.inRange()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(3.0k)|赞(0)|评价(0)|浏览(591)

本文整理了Java中org.opencv.core.Core.inRange()方法的一些代码示例,展示了Core.inRange()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Core.inRange()方法的具体详情如下:
包路径:org.opencv.core.Core
类名称:Core
方法名:inRange

Core.inRange介绍

[英]Checks if array elements lie between the elements of two other arrays.

The function checks the range as follows:

  • For every element of a single-channel input array:

dst(I)= lowerb(I)_0

  • For two-channel arrays:

dst(I)= lowerb(I)_0

  • and so forth.

That is, dst (I) is set to 255 (all 1 -bits) if src (I) is within the specified 1D, 2D, 3D,... box and 0 otherwise.

When the lower and/or upper boundary parameters are scalars, the indexes (I) at lowerb and upperb in the above formulas should be omitted.
[中]检查数组元素是否位于其他两个数组的元素之间。
该函数检查范围如下:
*对于单通道输入阵列的每个元素:
dst(I)=低RB(I)0
*对于双通道阵列:
dst(I)=低RB(I)0
*等等。
也就是说,如果src(I)在指定的1D、2D、3D…范围内,则将dst(I)设置为255(所有[$1$]-位),。。。框,否则为0。
当下边界和/或上边界参数为标量时,应忽略上述公式中lowerbupperb处的索引(I)

代码示例

代码示例来源:origin: kongqw/OpenCVForAndroid

  1. private void rgba2Hsv(Mat rgba) {
  2. Imgproc.cvtColor(rgba, hsv, Imgproc.COLOR_RGB2HSV);
  3. //inRange函数的功能是检查输入数组每个元素大小是否在2个给定数值之间,可以有多通道,mask保存0通道的最小值,也就是h分量
  4. //这里利用了hsv的3个通道,比较h,0~180,s,smin~256,v,min(vmin,vmax),max(vmin,vmax)。如果3个通道都在对应的范围内,则
  5. //mask对应的那个点的值全为1(0xff),否则为0(0x00).
  6. int vMin = 65, vMax = 256, sMin = 55;
  7. Core.inRange(
  8. hsv,
  9. new Scalar(0, sMin, Math.min(vMin, vMax)),
  10. new Scalar(180, 256, Math.max(vMin, vMax)),
  11. mask
  12. );
  13. }

代码示例来源:origin: us.ihmc/IHMCPerception

  1. public static void thresholdImage(Mat hsvImage, Mat thresholdedImage, HueSaturationValueRange hsvRange)
  2. {
  3. Core.inRange(hsvImage, hsvRange.getMin(), hsvRange.getMax(), thresholdedImage);
  4. }

代码示例来源:origin: us.ihmc/ihmc-perception

  1. public static void thresholdImage(Mat hsvImage, Mat thresholdedImage, HueSaturationValueRange hsvRange)
  2. {
  3. Core.inRange(hsvImage, hsvRange.getMin(), hsvRange.getMax(), thresholdedImage);
  4. }

代码示例来源:origin: nroduit/Weasis

  1. private static void exludePaddingValue(Mat src, Mat mask, int paddingValue, int paddingLimit) {
  2. Mat dst = new Mat();
  3. Core.inRange(src, new Scalar(paddingValue), new Scalar(paddingLimit), dst);
  4. Core.bitwise_not(dst, dst);
  5. Core.add(dst, mask, mask);
  6. }

代码示例来源:origin: us.ihmc/ihmc-perception

  1. Mat mat = hsvRangeMatEntry.getValue();
  2. Core.inRange(medianBlurredMat, hsvRange.getLowerBoundOpenCVScalar(), hsvRange.getUpperBoundOpenCVScalar(), mat);

代码示例来源:origin: us.ihmc/IHMCPerception

  1. Mat mat = hsvRangeMatEntry.getValue();
  2. Core.inRange(medianBlurredMat, hsvRange.getLowerBoundOpenCVScalar(), hsvRange.getUpperBoundOpenCVScalar(), mat);

代码示例来源:origin: openpnp/openpnp

  1. @Override
  2. public Result process(CvPipeline pipeline) throws Exception {
  3. Mat mat = pipeline.getWorkingImage();
  4. Mat mask = mat.clone();
  5. Mat masked = mat.clone();
  6. Scalar color = FluentCv.colorToScalar(Color.black);
  7. mask.setTo(color);
  8. masked.setTo(color);
  9. // FCA Change to have the possibility to work inside the interval or outside (when min>max)
  10. Scalar min;
  11. Scalar max;
  12. if (hueMin <= hueMax) {
  13. min = new Scalar(hueMin, saturationMin, valueMin);
  14. max = new Scalar(hueMax, saturationMax, valueMax);
  15. }
  16. else {
  17. min = new Scalar(hueMax, saturationMin, valueMin);
  18. max = new Scalar(hueMin, saturationMax, valueMax);
  19. }
  20. Core.inRange(mat, min, max, mask);
  21. if (hueMin <= hueMax) {
  22. Core.bitwise_not(mask, mask);
  23. }
  24. mat.copyTo(masked, mask);
  25. return new Result(masked);
  26. }
  27. }

相关文章

Core类方法