min函数

图像处理100问(1~5)

大兔子大兔子 提交于 2020-03-05 14:55:55
小记: 问题1 — RGB与BGR转换 问题2 — BGR灰度化 问题3 — 二值化 问题4 — 大津二值化算法 问题5 — RGB转HSV 一方面是考察图像的以上原理,一方面是考察numpy的使用。 参考: numpy库的基本使用 问题一:通道交换 读取图像,然后将 RGB \text{RGB} RGB 通道替换成 BGR \text{BGR} BGR 通道。 下面的代码用于提取图像的红色通道。 解析: 要把蓝色部分变成红色,而图中蓝色明显,说明B通道灰度值小,故而可以交换 B和R通道中的数值,这样B通道灰度值大,颜色变浅,B通道的灰度值变小,颜色变深,红色也就显现出来了。 import cv2 def BGR2RGB ( img ) : b = img [ : , : , 0 ] . copy ( ) g = img [ : , : , 1 ] r = img [ : , : , 2 ] img [ : , : , 0 ] = r img [ : , : , 1 ] = g img [ : , : , 2 ] = b return img img = cv2 . imread ( "imori.jpg" ) img = BGR2RGB ( img ) cv2 . imshow ( "result" , img ) cv2 . waitKey ( ) 问题二:灰度化

MinMax

无人久伴 提交于 2020-02-25 16:15:29
算法介绍 MinMax 大家在编程的时候应该或多或少都接触到过这样的写法: min(max(xxx,yyy)) ,MinMax算法的表达形式就是如此,不过其中的Min和Max都是具有对应含义的。 一般解决 博弈类问题 的自然想法是将格局组织成一棵),树的每一个节点表示一种格局,而父子关系表示由父格局经过一步可以到达子格局。Minimax也不例外,它通过对以当前格局为根的格局树搜索来确定下一步的选择。而一切格局树搜索算法的核心都是 对每个格局价值的评价 。Minimax算法基于以下朴素思想确定格局价值: Minimax是一种 悲观算法 ,即假设对手每一步都会将我方引入从当前看理论上价值最小的格局方向,即 对手具有完美决策能力 。因此我方的策略应该是选择那些对方所能达到的让我方最差情况中最好的,也就是让 对方在完美决策 下所 对我造成的损失最小 。 Minimax 不 找 理论最优解 ,因为理论最优解往往依赖于对手是否足够愚蠢,Minimax中我方完全掌握主动,如果对方每一步决策都是完美的,则我方可以达到预计的最小损失格局,如果对方没有走出完美决策,则我方可能达到比预计的最悲观情况更好的结局。总之我方就是要在 最坏情况中选择最好的 。 举例For Example: 现在考虑这样一个游戏:有三个盘子A、B和C,每个盘子分别放有三张纸币。A放的是1、20、50;B放的是5、10、100

30、包含min函数的栈

此生再无相见时 提交于 2020-02-10 16:56:28
包含min函数的栈 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路分析 通过建立辅助栈用来存储当前所有元素的最小元素,每进一个元素,更新一次。如果进的元素小于辅助栈的栈顶元素,则入栈,否则复制栈顶元素再次入栈。代码如下: import java . util . Stack ; public class Solution { Stack < Integer > stack = new Stack < > ( ) ; Stack < Integer > min_stack = new Stack < > ( ) ; public void push ( int node ) { stack . push ( node ) ; if ( min_stack . empty ( ) || node < min_stack . peek ( ) ) { min_stack . push ( node ) ; } else { min_stack . push ( min_stack . peek ( ) ) ; } } public void pop ( ) { stack . pop ( ) ; min_stack . pop ( ) ; } public int top ( ) { return stack .

JavaScript重新学习、捡漏 (4)

╄→尐↘猪︶ㄣ 提交于 2020-02-08 17:32:45
JavaScript重新学习、捡漏 (4) Math 对象 1. round()方法坑点: 四舍五入函数,遇到 .5 则不同,遇到 .5 则是往大了取 2. abs()方法解析: 对于数字而言没有什么坑点,就是针对 字符串型的数字 有一个 隐式转换 ,也可以进行绝对值操作,但是对于 字符串 就没有办法了,返回一个 NaN 。 3. random()返回一个[0,1]之间的浮点数,封装案例: //返回两个数之间(包含两个数)的随机数 function getMax ( min . max ) { min = Math . ceil ( min ) ; max = Math . ceil ( max ) ; return Math . floor ( Math . random ( ) * ( max - min + 1 ) + min ) ; } //返回两个数之间(不包含两个数)的随机数 function getMax ( min . max ) { min = Math . ceil ( min ) ; max = Math . ceil ( max ) ; return Math . floor ( Math . random ( ) * ( max - min ) + min ) ; } 来源: CSDN 作者: 阿胡胡 链接: https://blog.csdn.net

arg min & arg max

佐手、 提交于 2020-02-07 07:53:29
arg 是变元(即自变量argument)的英文缩写。 arg min 就是使后面这个式子达到最小值时的变量的取值 arg max 就是使后面这个式子达到最大值时的变量的取值 例如 函数F(x,y): arg min F(x,y)就是指当F(x,y)取得最小值时,变量x,y的取值 arg max F(x,y)就是指当F(x,y)取得最大值时,变量x,y的取值 Reference https://zhuanlan.zhihu.com/p/42402778 </div> arg 是变元(即自变量argument)的英文缩写。 arg min 就是使后面这个式子达到最小值时的变量的取值 arg max 就是使后面这个式子达到最大值时的变量的取值 例如 函数F(x,y): arg min F(x,y)就是指当F(x,y)取得最小值时,变量x,y的取值 arg max F(x,y)就是指当F(x,y)取得最大值时,变量x,y的取值 Reference https://zhuanlan.zhihu.com/p/42402778 </div> 来源: CSDN 作者: Arthur-Ji 链接: https://blog.csdn.net/Arthur_Holmes/article/details/104197144

Markdown-公式小入门

自作多情 提交于 2020-02-02 01:14:03
如何写出下面的公式? min ⁡ ω ∣ ∣ X ω − y ∣ ∣ 2 2 \min_{\omega}||X\omega-y||_2^2 ω min ​ ∣ ∣ X ω − y ∣ ∣ 2 2 ​ 上面这个公式的代码是: \min_{\omega}||X\omega-y||_2^2 这是线性回归的公式代码,让我们来看看: \min:就可以表示min函数 \omega:就可以表示ω这个字符 _2:表示下标2 ^2:表示上标2 {}:可以放入一些组合公式 来源: CSDN 作者: 小胖墩ya 链接: https://blog.csdn.net/jiangSummer/article/details/104137037

剑指offer 包含min函数的栈

白昼怎懂夜的黑 提交于 2020-01-25 01:12:45
1.题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为 O(1) )。 来源:剑指offer 链接: https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&tqId=11173&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 2.我的题解 首先用一个 STL 标准栈存储数值,记为数值栈。 再用一个 STL 标准栈存储最小值,记为最小值栈。注意: 最小值栈不仅要包含当前的最小值,还要包括弹出数值栈任意值之后的最小值。 如果入栈的值更小一些,那么最小值栈就要进行更新操作,如果入栈的值更大一些,那么最小值栈不必操作。 时间复杂度: O(1) ,空间复杂度: O(n) 。 class Solution { stack < int > value_s ; //数值栈 stack < int > min_s ; //最小值栈 public : void push ( int value ) { value_s . push ( value ) ; if ( min_s . empty ( ) || min_s . top ( ) >= value ) min

十一 模板匹配match template

匆匆过客 提交于 2020-01-21 03:30:37
一、介绍 1、模板匹配 通俗讲就是以图找图,通过图中的一部分来找它在图中的位置(模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域)。 模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。 它是图像处理中最基本、最常用的匹配方法。 2、作用有局限性 必须在指定的环境下,才能匹配成功,是受到很多因素的影响,所以有一定的适应性 模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。 3、工作原理 在待检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。 常见的几种模板匹配算法 ①TM_SQDIFF是平方差匹配;TM_SQDIFF_NORMED是标准平方差匹配。利用平方差来进行匹配,最好匹配为0.匹配越差,匹配值越大。 所以这个函数和其他函数是不一样的 ②TM_CCORR是相关性匹配;TM_CCORR_NORMED是标准相关性匹配。采用模板和图像间的乘法操作,数越大,越接近1表示匹配程度较高, 0表示最坏的匹配效果。 ③TM_CCOEFF是相关性系数匹配;TM_CCOEFF_NORMED是标准相关性系数匹配。将模版对其均值的相对值与图像对其均值的相关值进行匹配,1表示完美匹配,-1表示糟糕的匹配

包含min函数的栈

你。 提交于 2020-01-20 04:10:40
包含min函数的栈 1.题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 2.思路 设置一个栈m_data,一个辅助栈m_min,压栈时压入m_data,如果待压入元素比m_min的栈顶元素小,则也把该元素压入m_min,m_min记录了当前的最小元素。pop栈时,如果m_data的栈顶元素和m_min的栈顶元素相等时,则同时弹出m_data和m_min的栈顶元素。取top时直接取m_data的top(),取min时,直接取m_min的top()。 3.代码 class Solution { public : void push ( int value ) { m_data . push ( value ) ; if ( m_min . empty ( ) ) { m_min . push ( value ) ; } else if ( m_min . top ( ) > value ) { m_min . push ( value ) ; } } void pop ( ) { if ( m_data . top ( ) == m_min . top ( ) ) { m_min . pop ( ) ; } m_data . pop ( ) ; } int top ( ) { return m_data . top (

FJUT-1370 记录一次解题过程

耗尽温柔 提交于 2020-01-16 16:02:14
题目在 福工院的1370 首先看题目,好家伙,全英文 那么大致的题意就是。有几个城市同在一条线上(相当于在x轴上),max i是第i个城市到其他所有城市的距离中的最大值,min i也就是所有中最小的。 再看输入 第一行输入一个n( 2 ≤  n  ≤ 10 5 ) ,代表城市数量。第二行有n个数: x 1 ,  x 2 , ...,  x n (  - 10 9  ≤  x i  ≤ 10 9 ),代表每个城市的横坐标。 看一下输出 输出n行,每行输出两个数,代表第i个城市到其他所有城市的距离最小值min i、最大值max i。 那么,这道题是想干什么呢? 就是给你n个在x轴上的点,x坐标告诉你了,求每个点距离其他点的最小值与最大值。 读懂了题,那就比较好写了。 首先读入每个城市横坐标 for(i=0; i<n; i++) { cin>>x[i]; } 然后接下来分别求出每个max、min就可以了 for(i=0; i<n; i++) { int max=0; int min=inf; for(j=0; j<n; j++) { if(abs(x[i]-x[j])>max&&i!=j) max=abs(x[i]-x[j]); if(abs(x[i]-x[j])<min&&i!=j) min=abs(x[i]-x[j]); } cout<<min<<" "<<max<<endl; }