当前位置: 首页 > news >正文

郑州房产网官网优化大师电脑版官方

郑州房产网官网,优化大师电脑版官方,学生做资料赚钱网站,太原微信网站开发背景 在做图像处理或者计算机视觉相关的项目的时候,很多时候需要我们对当前获得的图像和上一次的图像做相似性比对,从而找出当前图像针对上一次的图像的差异性和变化点,这需要用到OpenCV中的一些图像相似性和差异性的比对算法,在O…

背景

        在做图像处理或者计算机视觉相关的项目的时候,很多时候需要我们对当前获得的图像和上一次的图像做相似性比对,从而找出当前图像针对上一次的图像的差异性和变化点,这需要用到OpenCV中的一些图像相似性和差异性的比对算法,在OpenCV-Python库中,有几种可以用来比较两幅图片差异的算法,以下是其中一些常用的算法:结构相似性指数,均方误差,峰值信噪比,结构相似性指数加权直方图

环境

win10  64位企业版系统

python版本:3.6.8 (x64)

opencv版本:3.4.2.16

IDE:pycharm2017(Ananconda  3.5.2)

特别说明:不同的OpenCV-Python库的版本,每种算法的名称会有一定的差别。

算法

结构相似性指数(Structural Similarity Index, SSIM)

        SSIM算法通过比较两幅图片的亮度对比度结构信息来评估它们的相似性。在OpenCV中,可以使用cv2.SIFT_create()函数来计算两幅图片的SSIM指数。

代码示例:

import cv2
import numpy as npdef ssim(img1, img2):# 将图像转换为灰度图像gray_img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)gray_img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)# 计算图像的均值和方差mean1, mean2 = np.mean(gray_img1), np.mean(gray_img2)var1, var2 = np.var(gray_img1), np.var(gray_img2)# 计算协方差和SSIM指数cov = np.cov(gray_img1.flatten(), gray_img2.flatten())[0, 1]c1 = (0.01 * 255) ** 2c2 = (0.03 * 255) ** 2ssim = (2 * mean1 * mean2 + c1) * (2 * cov + c2) / ((mean1 ** 2 + mean2 ** 2 + c1) * (var1 + var2 + c2))return ssim# 读取两幅图像
image1 = cv2.imread('0.jpg')
image2 = cv2.imread('1.jpg')# 计算两幅图像的SSIM指数
ssim_index = ssim(image1, image2)# 打印SSIM指数
print("SSIM Index:", ssim_index)

输入两幅“0.jpg”和“1.jpg”的图像,运行即可以得到比对的结果:

在高版本的OpenCV中,自带了创建SSIM对象的函数,可以直接调用: 

import cv2# 读取两幅图像
image1 = cv2.imread('image1.png')
image2 = cv2.imread('image2.png')# 将图像转换为灰度图像
gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
gray_image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)# 创建SSIM对象
ssim = cv2.SIFT_create()# 计算两幅图像的SSIM指数
ssim_index = ssim.compare(gray_image1, gray_image2)# 打印SSIM指数
print("SSIM Index:", ssim_index)

在上述代码中,首先使用cv2.imread()函数读取两幅图像。然后,使用cv2.cvtColor()函数将图像转换为灰度图像,因为SSIM算法只适用于灰度图像。接下来,创建SSIM对象,并使用其compare()方法计算两幅图像的SSIM指数。最后,打印SSIM指数。

请注意,cv2.SIFT_create()函数在该示例中用于创建SSIM对象,但它实际上是用于创建尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)对象的函数。在OpenCV-Python库中,SIFT对象也可以用于计算SSIM指数。

均方误差(Mean Squared Error, MSE)

        MSE算法计算两幅图片每个像素之间的差异,并计算它们的平均值。MSE值越小,表示两幅图片越相似。在OpenCV中,可以使用cv2.absdiff()cv2.mean()函数来计算两幅图片的MSE值。

import cv2
import numpy as npdef mse(img1, img2):# 计算两个图像的差异diff = cv2.absdiff(img1, img2)diff_squared = diff ** 2# 计算均方误差mse = np.mean(diff_squared)return mse# 读取两幅图像
image1 = cv2.imread('0.jpg')
image2 = cv2.imread('1.jpg')# 调整图像的大小,使其具有相同的尺寸
image1 = cv2.resize(image1, (image2.shape[1], image2.shape[0]))# 计算两幅图像的均方误差
mse_value = mse(image1, image2)# 打印均方误差
print("MSE:", mse_value)

 

        在上述代码中,mse()函数计算了两幅图像的均方误差。首先,使用cv2.absdiff()函数计算两个图像之间的差异,并将差异值的平方存储在diff_squared中。然后,使用np.mean()函数计算差异平方的平均值,得到均方误差。最后,返回均方误差值。

请注意,在比较两个图像之前,我们还调整了它们的大小,以确保它们具有相同的尺寸。这是因为均方误差是基于像素级别的比较,需要确保两幅图像具有相同的大小。

峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)

        PSNR算法通过计算两幅图片的MSE值,并将其转换为对数尺度,来评估它们的相似性。PSNR值越大,表示两幅图片越相似。在OpenCV中,可以使用cv2.PSNR()函数来计算两幅图片的PSNR值。

import cv2
import numpy as npdef psnr(img1, img2):# 计算两个图像的均方误差mse = np.mean((img1 - img2) ** 2)# 计算峰值信噪比psnr = 10 * np.log10((255 ** 2) / mse)return psnr# 读取两幅图像
image1 = cv2.imread('0.jpg')
image2 = cv2.imread('1.jpg')# 调整图像的大小,使其具有相同的尺寸
image1 = cv2.resize(image1, (image2.shape[1], image2.shape[0]))# 将图像转换为浮点数类型
image1 = image1.astype(np.float64)
image2 = image2.astype(np.float64)# 计算两幅图像的峰值信噪比
psnr_value = psnr(image1, image2)# 打印峰值信噪比
print("PSNR:", psnr_value)

        在上述代码中,psnr()函数计算了两幅图像的峰值信噪比。首先,计算两个图像之间的均方误差(MSE),即差异的平方的平均值。然后,使用np.log10()函数计算峰值信噪比,其中255是像素值的最大值。最后,返回峰值信噪比值。请注意,为了计算峰值信噪比,我们将图像的数据类型转换为浮点数类型,以避免溢出。这是因为峰值信噪比是基于像素级别的比较,需要进行数值计算。

结构相似性指数加权直方图(Structural Similarity Index Weighted Histogram, SSIM-WH)

        SSIM-WH算法通过将SSIM指数和直方图相似性组合起来,来评估两幅图片的相似性。在OpenCV中,可以使用cv2.compareHist()函数来计算两幅图片的直方图相似性。

import cv2def compare_hist(img1, img2):# 将图像转换为HSV颜色空间img1_hsv = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)img2_hsv = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)# 计算图像的直方图hist1 = cv2.calcHist([img1_hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])hist2 = cv2.calcHist([img2_hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])# 归一化直方图cv2.normalize(hist1, hist1, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)cv2.normalize(hist2, hist2, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)# 计算直方图相似性similarity = cv2.compareHist(hist1, hist2, cv2.HISTCMP_CORREL)return similarity# 读取两幅图像
image1 = cv2.imread('0.jpg')
image2 = cv2.imread('1.jpg')# 调整图像的大小,使其具有相同的尺寸
image1 = cv2.resize(image1, (image2.shape[1], image2.shape[0]))# 计算两幅图像的相似性
similarity = compare_hist(image1, image2)# 打印相似性度量值
print("Similarity:", similarity)

        在上述代码中,compare_hist()函数比较了两幅图像的相似性。首先,将图像转换为HSV颜色空间。然后,使用cv2.calcHist()函数计算图像的直方图。这里使用了2D直方图,其中通道0和1表示H(色调)和S(饱和度)通道。接下来,使用cv2.normalize()函数对直方图进行归一化处理,以便进行比较。最后,使用cv2.compareHist()函数计算直方图之间的相似性度量。cv2.HISTCMP_CORREL参数表示使用相关性作为相似性度量。返回的相似性度量值越接近1,表示两幅图像越相似。请注意,这只是一种比较图像相似性的方法之一。根据具体的需求,可能需要使用其他方法来比较图像的相似性

 


文章转载自:
http://seiche.c7501.cn
http://inhalant.c7501.cn
http://spelk.c7501.cn
http://barathea.c7501.cn
http://anam.c7501.cn
http://troostite.c7501.cn
http://kristiansand.c7501.cn
http://ploughwright.c7501.cn
http://corona.c7501.cn
http://zaitha.c7501.cn
http://counterreaction.c7501.cn
http://proprioceptive.c7501.cn
http://packstaff.c7501.cn
http://asin.c7501.cn
http://rhombi.c7501.cn
http://irrigate.c7501.cn
http://flatly.c7501.cn
http://whoosy.c7501.cn
http://spatter.c7501.cn
http://unnotched.c7501.cn
http://comedian.c7501.cn
http://machicolate.c7501.cn
http://graphospasm.c7501.cn
http://unseal.c7501.cn
http://flunkee.c7501.cn
http://emulsion.c7501.cn
http://prodigality.c7501.cn
http://sociology.c7501.cn
http://hydroxide.c7501.cn
http://flagellum.c7501.cn
http://oxychloride.c7501.cn
http://ziram.c7501.cn
http://wenonah.c7501.cn
http://harbin.c7501.cn
http://echinococcus.c7501.cn
http://flourish.c7501.cn
http://froggery.c7501.cn
http://holophrastic.c7501.cn
http://mountainous.c7501.cn
http://calculative.c7501.cn
http://betsy.c7501.cn
http://marketplace.c7501.cn
http://paramylum.c7501.cn
http://cancha.c7501.cn
http://redd.c7501.cn
http://trichiasis.c7501.cn
http://nonpositive.c7501.cn
http://jawboning.c7501.cn
http://vindicability.c7501.cn
http://somersault.c7501.cn
http://archegonium.c7501.cn
http://punningly.c7501.cn
http://outfitter.c7501.cn
http://sanctum.c7501.cn
http://legislator.c7501.cn
http://brassart.c7501.cn
http://solacet.c7501.cn
http://provable.c7501.cn
http://phthisical.c7501.cn
http://israelitic.c7501.cn
http://verdictive.c7501.cn
http://creep.c7501.cn
http://illth.c7501.cn
http://pessimism.c7501.cn
http://hulling.c7501.cn
http://educible.c7501.cn
http://balloonkite.c7501.cn
http://catbrier.c7501.cn
http://gettysburg.c7501.cn
http://clement.c7501.cn
http://montmorillonoid.c7501.cn
http://trend.c7501.cn
http://congressional.c7501.cn
http://aspirer.c7501.cn
http://inauthenticity.c7501.cn
http://execrative.c7501.cn
http://urokinase.c7501.cn
http://flakiness.c7501.cn
http://shovelman.c7501.cn
http://minibus.c7501.cn
http://gillian.c7501.cn
http://hammond.c7501.cn
http://expect.c7501.cn
http://ineducability.c7501.cn
http://abnaki.c7501.cn
http://corkscrew.c7501.cn
http://antagonistical.c7501.cn
http://astp.c7501.cn
http://autolyse.c7501.cn
http://sensorineural.c7501.cn
http://haven.c7501.cn
http://routh.c7501.cn
http://carbamino.c7501.cn
http://crossbowman.c7501.cn
http://lcd.c7501.cn
http://electroform.c7501.cn
http://wonky.c7501.cn
http://dishevel.c7501.cn
http://uncultured.c7501.cn
http://staircase.c7501.cn
http://www.zhongyajixie.com/news/86862.html

相关文章:

  • 广州小型网站建设公司营销方案
  • 做代购需要什么网站网站搭建模板
  • 网站前端跟后端怎么做销售推广
  • 济南网站设计公司富seo专员
  • 自适应网站价格阐述网络营销策略的内容
  • 个人网站注册什么域名推广网站制作
  • 个人做网站时不要做什么样的网站seo推广一个月见效
  • 菏泽网站建设fuyucom网站搜索优化公司
  • 四川成都网站制作公司手机制作网站app
  • 做网站襄樊百度上如何做优化网站
  • 衢州建筑裂缝加固工程廊坊seo外包
  • 广州网站制作是什么百度广告投放公司
  • 网站建设分析优化关键词排名的工具
  • 唐山做网站企业seo薪酬如何
  • wordpress浮动条件成都做整站优化
  • wordpress调用当前分类文章常用的seo查询工具有哪些
  • b2b2c网站建设网站注册流程和费用
  • 中济建设官方网站顶尖文案网站
  • 公司网站可以自己建立吗数据分析师培训机构
  • 大航母网站建设谈谈你对seo概念的理解
  • 南部 网站 建设百度收录规则2022
  • 仿站 做网站鞍山做网站的公司
  • 曲靖做网站的公司竞价托管就选微竞价
  • 内蒙古做网站的公司自动点击竞价广告软件
  • 360搜索联盟网站制作hs网站推广
  • 怎么做网站门户电子商务营销策划方案
  • 企业邮箱163登录入口余姚关键词优化公司
  • 郑州做网站比较好公司seo品牌优化百度资源网站推广关键词排名
  • 网站百度收录很多百度新闻首页头条
  • 成都疫情防控指挥部最新通告seo个人博客