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

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

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

Core.merge介绍

[英]Creates one multichannel array out of several single-channel ones.

The functions merge merge several arrays to make a single multi-channel array. That is, each element of the output array will be a concatenation of the elements of the input arrays, where elements of i-th input array are treated as mv[i].channels()-element vectors.

The function "split" does the reverse operation. If you need to shuffle channels in some other advanced way, use "mixChannels".
[中]从多个单通道阵列中创建一个多通道阵列。
函数merge将多个阵列合并为一个多通道阵列。也就是说,输出数组的每个元素都是输入数组元素的串联,其中第i个输入数组的元素被视为mv[i].channels()-元素向量。
函数“split”执行相反的操作。如果您需要以其他高级方式洗牌频道,请使用“混合频道”。

代码示例

代码示例来源:origin: RaiMan/SikuliX2

  1. private Mat makeContent() {
  2. if (hasMask()) {
  3. Mat mBGRA = getNewMat(mask.size(), 4, -1);
  4. List<Mat> mats = new ArrayList<>();
  5. mats.add(content);
  6. mats.add(mask);
  7. Core.merge(mats, mBGRA);
  8. return mBGRA;
  9. } else {
  10. return content;
  11. }
  12. }

代码示例来源:origin: RaiMan/SikuliX2

  1. private Mat matMulti(Mat mat, int channels) {
  2. if (mat.type() != CvType.CV_8UC1 || mat.channels() == channels) {
  3. return mat;
  4. }
  5. List<Mat> listMat = new ArrayList<>();
  6. for (int n = 0; n < channels; n++) {
  7. listMat.add(mat);
  8. }
  9. Mat mResult = Element.getNewMat();
  10. Core.merge(listMat, mResult);
  11. return mResult;
  12. }

代码示例来源:origin: RaiMan/SikuliX2

  1. public Mat getContentBGRA() {
  2. if (!hasMask()) {
  3. Mat mBGRA = getNewMat(mask.size(), 4, -1);
  4. List<Mat> mats = new ArrayList<>();
  5. mats.add(content);
  6. mats.add(getNewMat(content.size(), 1, 255));
  7. Core.merge(mats, mBGRA);
  8. return mBGRA;
  9. }
  10. return getContent(null);
  11. }

代码示例来源:origin: RaiMan/SikuliX2

  1. Core.split(aMat, mats);
  2. mats.add(mats.remove(0));
  3. Core.merge(mats, mBGRA);
  4. return mBGRA;
  5. } else if (bImg.getType() == BufferedImage.TYPE_BYTE_GRAY) {

代码示例来源:origin: RaiMan/SikuliX2

  1. private List<Mat> checkMat(Mat mat) {
  2. List<Mat> mats = new ArrayList<>();
  3. if (CvType.CV_8UC1 == mat.type() || CvType.CV_8UC3 == mat.type()) {
  4. mats.add(mat);
  5. } else if (CvType.CV_8UC4 == mat.type()) {
  6. List<Mat> matsBGRA = new ArrayList<>();
  7. Core.split(mat, matsBGRA);
  8. Mat mBGR = new Mat(mat.size(), CvType.CV_8UC3);
  9. Mat matA = matsBGRA.remove(3);
  10. Core.merge(matsBGRA, mBGR);
  11. mats.add(mBGR);
  12. MatOfDouble mStdDev = new MatOfDouble();
  13. Core.meanStdDev(matA, new MatOfDouble(), mStdDev);
  14. if (0 < mStdDev.toArray()[0]) {
  15. mats.add(matA);
  16. }
  17. }
  18. return mats;
  19. }

代码示例来源:origin: RaiMan/SikuliX2

  1. mBGRA.add(mMask);
  2. Mat mResult = new Mat(mMask.size(), CvType.CV_8UC4);
  3. Core.merge(mBGRA, mResult);
  4. shotMasked = new Picture(mResult);
  5. resizeToFrame(shotMasked);

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

  1. public static ImageCV applyLUT(Mat source, byte[][] lut) {
  2. Mat srcImg = Objects.requireNonNull(source);
  3. int lutCh = Objects.requireNonNull(lut).length;
  4. Mat lutMat;
  5. if (lutCh > 1) {
  6. lutMat = new Mat();
  7. List<Mat> luts = new ArrayList<>(lutCh);
  8. for (int i = 0; i < lutCh; i++) {
  9. Mat l = new Mat(1, 256, CvType.CV_8U);
  10. l.put(0, 0, lut[i]);
  11. luts.add(l);
  12. }
  13. Core.merge(luts, lutMat);
  14. if (srcImg.channels() < lut.length) {
  15. Imgproc.cvtColor(srcImg.clone(), srcImg, Imgproc.COLOR_GRAY2BGR);
  16. }
  17. } else {
  18. lutMat = new Mat(1, 256, CvType.CV_8UC1);
  19. lutMat.put(0, 0, lut[0]);
  20. }
  21. ImageCV dstImg = new ImageCV();
  22. Core.LUT(srcImg, lutMat, dstImg);
  23. return dstImg;
  24. }

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

  1. List<Mat> mv = toBGR ? Arrays.asList(b, g, r) : Arrays.asList(r, g, b);
  2. ImageCV dstImg = new ImageCV(raster.getHeight(), raster.getWidth(), CvType.CV_8UC3);
  3. Core.merge(mv, dstImg);
  4. return dstImg;

代码示例来源:origin: JavaOpenCVBook/code

  1. matList.add(zeroMat);
  2. Mat complexImage = new Mat();
  3. Core.merge(matList, complexImage);

相关文章

Core类方法