LearningOpencv5章作业

发布 2023-05-16 17:29:28 阅读 1666

1.原图(手画,可用ps加一点颜色比较浅的纹理)

a.#include

#include

using namespace cv;

using namespace std;

void onbarchange(int,void*);bar**。

mat src;

int ksize=1;

int main()

namedwindow("src");

namedwindow("dst");

src = imread("h:\\5_")read

createtrackbar("2*n+1","src",&ksize,5,onbarchange);

imshow("src",src);

waitkey(0);

return 0;

void onbarchange(int,void*)

mat temp;

ksize=ksize==0?1:ksize; /保证内核大小最小为3

gaussianblur(src,temp,size(ksize*2+1,ksize*2+1),0,0,4);

imshow("dst",temp);

b.#include

#include

using namespace cv;

using namespace std;

mat src,dst_1,dst_2;

int perceptualhash(mat srca,mat srcb);

int main()

namedwindow("src");

namedwindow("dst1");

namedwindow("dst2");

src = imread("h:\ead

mat temp;

gaussianblur(src,temp,size(5,5),0,0,4);

gaussianblur(temp,dst_1,size(5,5),0,0,4);

gaussianblur(src,dst_2,size(11,11),0,0,4);

printf("two image similar points:%d.",perceptualhash(dst_1,dst_2));

imshow("src",src);

imshow("dst1",dst_1);

imshow("dst2",dst_2);

waitkey(0);

return 0;

感知哈希算法。

对每个**生成一个“指纹”字符串,然后相互比较“指纹”,相同点约大,图像越相似。

实现步骤:1.缩小尺寸,将图像缩小到8*8的尺寸,总共64个像素。

这一步的作用是去除图像的细节,摒弃不同尺寸/比例带来的图像差异;

2.简化色彩:将缩小后的图像,转为64级灰度;

3.计算平均值:计算所有64个像素的灰度平均值;

4.比较像素的灰度:将每个像素的灰度,与平均值进行比较,大于或等于平均值记为1,小于平均值记为0;

5.计算hash值并比较。

利用一对数组遍历做比较,判断出两个**的相似点。

6.在理论上,这等同于”汉明距离”

a. 如果不相同的数据位数不超过5,就说明两张图像很相似;

b. 如果大于10,就说明这是两张不同的图像。 参考:

int perceptualhash(mat src1,mat src2)

mat resrca,resrcb;

resize(src1,resrca,size(8,8),0,0,inter_area);

resize(src2,resrcb,size(8,8),0,0,inter_area); 缩小**。

mat graysrca,graysrcb;

cvtcolor(resrca,graysrca,cv_rgb2gray); 灰度化。

cvtcolor(resrcb,graysrcb,cv_rgb2gray);

int grayvaluea=0,grayvalueb=0;

int arra[64],arrb[64];

for (int i=0;i<8;i++)

grayvaluea/=64; /算平均值。

grayvalueb/=64;

for (int i=0;i<64;i++)

int idiffnum = 0;

for (int i=0;i<64;i++)

return idiffnum;

#include

#include

using namespace cv;

using namespace std;

mat src,dsta,dstb,dstc;

int perceptualhash(mat src1,mat src2);

int main()

namedwindow("src");

namedwindow("dsta");

namedwindow("dstb");

namedwindow("dstc");

for(int i=40;i<60;i++)

gaussianblur(src,dsta,size(5,5),0,0,4);

gaussianblur(src,dstb,size(9,9),0,0,4);

gaussianblur(dsta,dstc,size(5,5),0,0,4);

printf(""perceptualhash(dstb,dstc));

imshow("src",src);

imshow("dsta",dsta);

imshow("dstb",dstb);

imshow("dstc",dstc);

5 5博客营销题目

5.5博客营销及操作。二 历年真题。1博客营销的特点有哪些?2分。a传播性 b自主性 c可信性 d灵活性。2博客营销具有搜索引擎可见性史因为博客的基本结构本身就有较高的搜索引擎优化的排名效果。a对 b错。3博客营销的价值主要体现在 a可以增加 推广费用 b可以更低的成本对读者行为进行研究。c使用户更...

5 5作业实验班

一 课内文言文。廉蔺列传 一 通假字。1 不 可予不。2 案 召有司案图。3 缪 秦自缪公以来。4 孰 唯大王与群臣孰计议之。5 拜送书于庭。二 词类活用。1 负 宁许以负秦曲。2 完 臣请完璧归赵。3 前 乃前曰。4 廷 卒廷见相如。5 毕 归 毕礼而归之。6 刃 左右欲刃相如。7 西 相如奉西入...

2019雅思5 5学习计划 实用

篇一 60天雅思复习计划第1次考雅思 6.5雅思学习计划。最后总成绩 6.5 听力6.5 感觉不是很满意,好多都走神了!阅读7.5 写作6 口语6 虽然之前父母和朋友都跟我说,第一次算练练兵,可是我还是把第一次考雅思当就作最后一次考试来看待。好了废话不多,还是来分享一下我这将近两个月复习的心得体会吧...