1.opencv
模板匹配
直方图(统计每个像素点分配有多少个)
plt.hist(灰度)
plt.plot(彩色)
均衡化 equalizeHist() 缩小直方图之间像素点个数的差异
局部均衡(createCLAHE),分区域,与全面均衡相比减少了均衡对图片细节的影响(噪音点较多不建议局部均衡)
clipLimit参数表示对比度的大小; tileGridSize参数表示每次处理块的大小。
2. 基础算法(贪心算法)
P1803 凌乱的yyy / 线段覆盖
#include<iostream>
#include<algorithm>
using namespace std;
int ans=0;
struct qj
{
long int l;
long int r;
}qjj[1000010];//结果体中的l表示左边界,r表示右边界
bool vis[1000010]={0};
bool comp(qj a,qj b)
{
if(a.r>b.r) return 0;
else return 1;
}//辅助sort排序函数
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>qjj[i].l>>qjj[i].r;
sort(qjj+1,qjj+1+n,comp);//排序
for(int i=1;i<=n;i++)
{
if(!vis[i])//没有被选过,直接选择
{
ans++;//选择该区间
vis[i]=1;//标记已经选择,可删去
for(int j=i+1;j<=n;j++)
{
if(qjj[i].r>qjj[j].l) //本区间的右边界在其他区间的左边界右边,则相交
{
vis[j]=1;//标记相交区间
}
}
}
}
cout<<ans;
return 0;
}
P3817 小A的糖果
#include <cstdio>
long long n,a[100010],x,ans,yy;
int main()
{
register int i;//register定义循环变量据说能加速
scanf("%lld%lld",&n,&x);
for (i=1;i<=n;i++)//从1~n很好地保证了第一个是a[0]和a[1],相当于单独考虑a[1]
{
scanf("%lld",&a[i]);//输入
if (a[i]+a[i-1]>x)yy=a[i]+a[i-1]-x,a[i]-=yy,ans+=yy;//两数之和超过,优先吃后面的,贪心(为了使后面加起来更小)
}
printf("%lld",ans);//lld哦
return 0;//记得返回0
}
//优先吃后面的