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

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

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

Core.bitwise_and介绍

[英]Calculates the per-element bit-wise conjunction of two arrays or an array and a scalar.

The function calculates the per-element bit-wise logical conjunction for:

  • Two arrays when src1 and src2 have the same size:

dst(I) = src1(I) / src2(I) if mask(I) != 0

  • An array and a scalar when src2 is constructed from Scalar or has the same number of elements as src1.channels():

dst(I) = src1(I) / src2 if mask(I) != 0

  • A scalar and an array when src1 is constructed from Scalar or has the same number of elements as src2.channels():

dst(I) = src1 / src2(I) if mask(I) != 0

In case of floating-point arrays, their machine-specific bit representations (usually IEEE754-compliant) are used for the operation. In case of multi-channel arrays, each channel is processed independently. In the second and third cases above, the scalar is first converted to the array type.
[中]计算两个数组或一个数组和一个标量的每元素逐位连接。
该函数计算以下各项的每元素逐位逻辑连接:
*src1src2具有相同大小时的两个数组:
dst(I)=src1(I)/src2(I)如果掩码(I)!=0
*当src2Scalar构造或具有与src1.channels()相同数量的元素时,数组和标量:
dst(I)=src1(I)/src2如果掩码(I)!=0
*当src1Scalar构造或具有与src2.channels()相同数量的元素时,标量和数组:
dst(I)=src1/src2(I)如果掩码(I)!=0
对于浮点数组,其特定于机器的位表示(通常符合IEEE754)用于操作。对于多通道阵列,每个通道都是独立处理的。在上面的第二和第三种情况下,标量首先转换为数组类型。

代码示例

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

  1. public static ImageCV bitwiseAnd(Mat source, int src2Cst) {
  2. Objects.requireNonNull(source);
  3. ImageCV mask = new ImageCV(source.size(), source.type(), new Scalar(src2Cst));
  4. Core.bitwise_and(source, mask, mask);
  5. return mask;
  6. }

代码示例来源:origin: ytai/IOIOPlotter

  1. private void HitAndMiss(Mat src, Mat dst, Mat positive, Mat negative) {
  2. Imgproc.erode(src, dst, positive);
  3. Core.subtract(Mat.ones(src.size(), CvType.CV_8UC1), src, tmpMat_);
  4. Imgproc.erode(tmpMat_, tmpMat_, negative);
  5. Core.bitwise_and(tmpMat_, dst, dst);
  6. }

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

  1. public RotatedRect objectTracking(Mat mRgba) {
  2. rgba2Hsv(mRgba);
  3. updateHueImage();
  4. // 计算直方图的反投影。
  5. // Imgproc.calcBackProject(hueList, new MatOfInt(0), hist, prob, ranges, 255);
  6. Imgproc.calcBackProject(hueList, new MatOfInt(0), hist, prob, ranges, 1.0);
  7. // 计算两个数组的按位连接(dst = src1 & src2)计算两个数组或数组和标量的每个元素的逐位连接。
  8. Core.bitwise_and(prob, mask, prob, new Mat());
  9. // 追踪目标
  10. rotatedRect = Video.CamShift(prob, trackRect, new TermCriteria(TermCriteria.EPS, 10, 1));
  11. if (null != mOnCalcBackProjectListener) {
  12. mOnCalcBackProjectListener.onCalcBackProject(prob);
  13. }
  14. // 将本次最终到的目标作为下次追踪的对象
  15. trackRect = rotatedRect.boundingRect();
  16. Imgproc.rectangle(prob, trackRect.tl(), trackRect.br(), new Scalar(255, 255, 0, 255), 6);
  17. Log.i(TAG, "objectTracking: 宽度 : " + trackRect.width + " 高度 : " + trackRect.height + " 角度 : " + rotatedRect.angle);
  18. return rotatedRect;
  19. }

相关文章

Core类方法