利用OpenCV的函数max()和min()取两幅图像中相同位置像素点的较大值或较小值

函数max()和min()用于取两幅图像中相同位置像素点的较大值或较小值,而不是用来求某幅图像中的像素最大值或最小值。
如果您需要求某幅图像中的像素最大值或最小值,可以使用函数minMaxLoc()来实现,关于函数minMaxLoc()的详细介绍,可以参考我的另一篇博文,链接 https://www.hhai.cc/thread-153-1-1.html

另外,如果您想把两幅图像间满足某个比较逻辑条件的像素值置为255,那么可利用OpenCV的函数 compare()实现。
关于compare()的详细介绍,可参阅官方文档,官方文档链接如下:
https://docs.opencv.org/4.4.0/d2/de8/group__core__array.html#ga303cfb72acf8cbb36d884650c09a3a97

函数max()和min()的使用非常简单,这里就不对它们作介绍了,大家直接看下面的示例代码就知道怎么用了。

C++示例代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术

//博主微信/QQ 2487872782
//QQ群 271891601
//欢迎技术交流与咨询

//OpenCV版本 OpenCV3.0

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;


int main()
{

	cv::Mat A1 = (cv::Mat_<uchar>(3, 3) << 1, 1, 1,
		66, 66, 66,
		55, 55, 55);
	cout << "A1中的数据为:\n" << A1 << endl << endl;


	cv::Mat B1 = (cv::Mat_<uchar>(3, 3) << 88, 88, 88,
		2, 2, 2,
		55, 55, 55);
	cout << "B1中的数据为:\n" << B1 << endl << endl;


	cv::Mat C1 = max(A1, B1);
	cout << "C1中的数据为:\n" << C1 << endl << endl;

	cv::Mat C2 = min(A1, B1);
	cout << "C2中的数据为:\n" << C2 << endl << endl;


	return(0);
}

运行结果如下:
在这里插入图片描述

Python示例代码如下:

# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术

# 博主微信/QQ 2487872782
# QQ群 271891601
# 欢迎技术交流与咨询

# OpenCV的版本为4.4.0

import numpy as np
import cv2 as cv

if __name__ == '__main__':
    A1 = np.array([[1, 1, 1],
                  [66, 66, 66],
                  [55, 55, 55]], dtype='int8')

    B1 = np.array([[88, 88, 88],
                  [2, 2, 2],
                  [55, 55, 55]], dtype='int8')

    C1 = cv.max(A1, B1)
    C2 = cv.min(A1, B1)

运行结果如下:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值