使用OpenCV-Python的函数minMaxLoc()应该注意的两点
OpenCV中的函数minMaxLoc()用于找出矩阵中的最大值和最小值,并且给出它们中的坐标。
函数原型如下:
C++原型有两个,分别如下:
C++原型一:
void cv::minMaxLoc ( InputArray src,
double * minVal,
double * maxVal = 0,
Point * minLoc = 0,
Point * maxLoc = 0,
InputArray mask = noArray()
)
参数意义如下:
src—输入矩阵,要求是单通道的图像,即二维的矩阵。
minVal—矩阵中的最小值。
maxVal—矩阵中的最大值。
minLoc—矩阵中的最小值的坐标。
maxLoc—矩阵中的最大值的坐标。
mask—掩模矩阵。
C++原型二:
void cv::minMaxLoc ( const SparseMat & a,
double * minVal,
double * maxVal,
int * minIdx = 0,
int * maxIdx = 0
)
参数意义如下:
a—输入矩阵,要求是单通道的图像,即二维的矩阵。
minVal—矩阵中的最小值。
maxVal—矩阵中的最大值。
minIdx—矩阵中最小值的坐标。
maxIdx—矩阵中最大值的坐标。
Python原型如下:
minVal, maxVal, minLoc, maxLoc = cv.minMaxLoc( src[, mask] )
参数意义如下:
src—输入矩阵,要求是单通道的图像,即二维的矩阵。
minVal—矩阵中的最小值。
maxVal—矩阵中的最大值。
minLoc—矩阵中的最小值的坐标。
maxLoc—矩阵中的最大值的坐标。
mask—掩模矩阵。
使用中需注意以下两点:
1 矩阵只能是一维或二维的矩阵,如果是二维以上的矩阵,需要先进行降维处理,比如使用函数reshape()完成,reshape()函数的使用方法可参见下面这篇我的博文:
https://blog.csdn.net/wenhao_ir/article/details/123514750
2 其返回的坐标是列在前,行在后,而不是行在前,列在后,实例如下面的代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
# 图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601
# OpenCV的版本为4.1import cv2 as cv
import numpy as np# 新建矩阵array
array = np.array([1, 2, 3, 4, 5, 6, 10, 7, 8, 9, 10, 0])
# 将array调整为3*4的单通道图像
img1 = array.reshape((3, 4))
minval_1, maxval_1, minloc_1, maxloc_1 = cv.minMaxLoc(img1)
temp1 = img1[2, 1]
temp2 = img1[1, 2]
print('图像img1中最小值为:{}, 其位置为:{}' .format(minval_1, minloc_1))
print('图像img1中最大值为:{}, 其位置为:{}' .format(maxval_1, maxloc_1))
运行结果如下图所示:
而矩阵img1的内容如下图所示:
可以看出,如果按行在前,列在后,其最小点的坐标应该为(2,3),而不是运行结果中的(3,2),这一点大家在使用中应该特别注意。
使用OpenCV-Python的函数minMaxLoc()应该注意的两点相关推荐
- opencv python 中cv2.putText()函数的用法
opencv python 中cv2.putText()函数的用法 文章目录: 一.快速使用 二.官方文档 三.使用举例 虽然用啦很多次,还是决定记录一下 一.快速使用 cv2.putText(ima ...
- opencv python cv2.imdecode()函数报错 :TypeError: Expected cv::UMat for argument 'buf'
原因:data_total是<class 'bytes'>类型的, imdecode()函数貌似没法解,它貌似只能解numpy数组.... 参见:python opencv cv2.imd ...
- OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内
OpenCV Python教程(3.直方图的计算与显示) 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途 ...
- 【OpenCV + Python】模板匹配
模板匹配是用来在一副大图中搜寻查找模版图像位置的方法.OpenCV 为我们提供了函数:cv2.matchTemplate().和2D 卷积一样,它也是用模板图像在输入图像(大图)上滑动,并在每一个位置 ...
- OpenCV—python 模板匹配与图像特征匹配
文章目录 一.理论介绍与算法 二.算法代码 单目标匹配 多目标匹配 三 多尺度模板匹配 一.理论介绍与算法 模板匹配是在一幅图像中寻找一个特定目标的方法之一,这种方法的原理非常简单,遍历图像中的每一个 ...
- 学习Opencv+Python之银行卡卡号识别
学习Opencv+Python之银行卡卡号识别 思路: 获取模板轮廓 获取模板中每个数字的轮廓 获取银行卡卡号轮廓 分别提取卡号中的每个数字的轮廓 对比识别 代码: # 导入工具包 from imut ...
- OpenCV+python:Canny边缘检测算法
1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...
- OpenCV+python:模板匹配
1,模板匹配的概念及原理 模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术. 我们需要2幅图像: 模板 (T): 将和原图像比照的图像块 原图像 (I): 在这幅图像里,我们希望 ...
- OpenCV Python在计算机视觉中的应用
OpenCV Python教程 在这篇文章中,我们将使用Python中的OpenCv来涵盖计算机视觉的各个方面.OpenCV长期以来一直是软件开发的重要组成部分. 什么是计算机视觉? 我们考虑一个场景 ...
最新文章
- 偶然发现静态函数与性能一例
- linux yum 本地源配置
- Devstack配置负载均衡,负载均衡版本V2
- LINUX下忘记MySQL的ROOT密码后修改,以及添加访问IP。
- googlehelper手机版ios_二次元漫画控iOS苹果手机版下载v1.0.0下载|免费二次元漫画控iOS苹果手机版下载绿色版...
- zabbix3.2.4监控MySQL5.7.16状态
- Linux下没有包含头文件(不知是哪个)导致编译无法通过的解决心得
- [css] span与span之间有看不见的空白间隔是什么原因引起的?有什么解决办法?
- 管理员信息模块php,管理员模块功能代码
- 使用Kotlin的Android Toast
- Swift 06.Closures
- Python请求外部POST请求,常见四种请求体
- c语言程序设计九宫格,C语言课程设计之智力九宫格.doc
- 什么情况下会用上568A线序
- 超威主板关闭超线程教程
- 【图像处理】自动报靶系统(重弹孔)【含GUI Matlab源码 973期】
- 百度地图 根据经纬度获取 地址
- 一款基于Vue的自适应Web在线音乐播放器
- 特拉华大学计算机科学怎么样,2020年特拉华大学排名TFE Times美国最佳计算机科学硕士专业排名第84...
- 1.6 建立Servers服务(2020-12-6)