返回顶部
首页 > 资讯 > 后端开发 > Python >OpenCV实现图片编解码实践
  • 614
分享到

OpenCV实现图片编解码实践

2024-04-02 19:04:59 614人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

原图: 图像信息,可以看到图像是一个816*2100像素的图片: python代码: import cv2 import numpy as np import matplot

原图:

图像信息,可以看到图像是一个816*2100像素的图片:

python代码:


import cv2
import numpy as np
import matplotlib.pyplot as plt
 
img = cv2.imread('11.jpg', 0)
img1 = img.astype('float')
img_dct = cv2.dct(img1)
img_dct_log = np.log(abs(img_dct))
img_recor = cv2.idct(img_dct)
recor_temp = img_dct[0:100,0:100]
recor_temp2 = np.zeros(img.shape)
recor_temp2[0:100,0:100] = recor_temp
print recor_temp.shape
print recor_temp2.shape
img_recor1 = cv2.idct(recor_temp2)
plt.subplot(221)
plt.imshow(img)
plt.title('original')
plt.subplot(222)
plt.imshow(img_dct_log)
plt.title('dct transfORMed')
plt.subplot(223)
plt.imshow(img_recor)
plt.title('idct transformed')
plt.subplot(224)
plt.imshow(img_recor1)
plt.title('idct transformed2')
 
plt.show()

仅仅提取一个100*100的DCT系数后的效果:

当用800*1000的DCT系数:

可以看到图像细节更丰富了一些:


import cv2
import numpy as np
import matplotlib.pyplot as plt
 
img = cv2.imread('11.jpg', 0)
img1 = img.astype('float')
img_dct = cv2.dct(img1)
img_dct_log = np.log(abs(img_dct))
img_recor = cv2.idct(img_dct)
recor_temp = img_dct[0:800,0:1000]
recor_temp2 = np.zeros(img.shape)
recor_temp2[0:800,0:1000] = recor_temp
print recor_temp.shape
print recor_temp2.shape
img_recor1 = cv2.idct(recor_temp2)
plt.subplot(221)
plt.imshow(img)
plt.title('original')
plt.subplot(222)
plt.imshow(img_dct_log)
plt.title('dct transformed')
plt.subplot(223)
plt.imshow(img_recor)
plt.title('idct transformed')
plt.subplot(224)
plt.imshow(img_recor1)
plt.title('idct transformed2')
 
plt.show()

当用816*1200的DCT系数:

可以看出图像恢复到原来的质量了.

分析代码:

img_dct保存的是dct变换后的矩阵,img_dct_log是矩阵中的元素首先取绝对值,再求对数的矩阵.

img_dct_log = np.log(abs(img_dct))

那么对数的底是多少呢?

打印出来img_dct_log和abs(img_dct)看一下:

打印结果:

其中9.45971865e+04=9.45971865 x 10^4 =94597.1865表示的是科学计数法.

我们看到只有在底数取e的时候,对应的对数才符合题目输出要求,所以,Python numpy.log函数取的是以自然常数e为地的对数.

到此这篇关于OpenCV实现图片编解码实践的文章就介绍到这了,更多相关OpenCV 图片编解码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: OpenCV实现图片编解码实践

本文链接: https://lsjlt.com/news/127540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • OpenCV实现图片编解码实践
    原图: 图像信息,可以看到图像是一个816*2100像素的图片: python代码: import cv2 import numpy as np import matplot...
    99+
    2024-04-02
  • python+opencv实现堆叠图片
    本文实例为大家分享了python+opencv实现堆叠图片的具体代码,供大家参考,具体内容如下 # import cv2 # import numpy as np # # img =...
    99+
    2024-04-02
  • OpenCV+python3实现视频分解成图片
    OpenCV+python3将视频分解成图片,供大家参考,具体内容如下 我们在工作或学习时,偶尔需要将视频分解成图片,只取其中一段的图片就行了,而在网上下载转换工具又3比较麻烦,现在...
    99+
    2024-04-02
  • Python Opencv实现图片切割处理
    本文实例为大家分享了Python Opencv实现图片的切割处理,供大家参考,具体内容如下 Opencv对图片的切割: 方法一: import os from PIL import ...
    99+
    2024-04-02
  • python+opencv怎么实现堆叠图片
    这篇文章主要讲解了“python+opencv怎么实现堆叠图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python+opencv怎么实现堆叠图片”吧!代码如下:# impor...
    99+
    2023-06-30
  • Python编程OpenCV和Numpy图像处理库实现图片去水印
    目录OpenCV + Numpy函数简介色彩转换PIL + itertools大家好,我是小五 前一阵给大家分享了,Python如何给图片加水印。评论区就有小伙伴问,可不可使用Pyt...
    99+
    2024-04-02
  • Python OpenCV实现图片预处理的方法详解
    目录一、图片预处理1.1 边界填充(padding)1.2 融合图片(mixup)1.3 图像阈值二、滤波器2.1 均值滤波器2.2 方框滤波器2.3 高斯滤波器2.4 中值滤波2....
    99+
    2024-04-02
  • Opencv实现倾斜图片转正示例
    今天是我们来玩一个钉子。通过一个钉子来学习一个opencv中的一个函数,这个函数我网上也有搜过,不过遗憾的是,各路好手都是写的是有点不堪入目,现在这个学习氛围是越来越差了,很多人都直...
    99+
    2024-04-02
  • OpenCV实现更改图片颜色功能
    原图效果: 更改颜色后效果: 直接上源码: #include <opencv2/opencv.hpp> #include <iostream> #incl...
    99+
    2024-04-02
  • 如何实现Opencv图片的OCR识别
    小编给大家分享一下如何实现Opencv图片的OCR识别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、图片变换0、导入模块导入相关函数,遇到报错的话,直接pip...
    99+
    2023-06-06
  • OpenCV 图像对比度的实践
    本文主要介绍了OpenCV 图像对比度,具有一定的参考价值,感兴趣的可以了解一下 实现原理 图像对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰...
    99+
    2024-04-02
  • C++ opencv实现在图片上画一条线示例代码
    1 在图片上用鼠标进行操作,opencv主要用到setMouseCallback()函数。 winname 窗口名称 onMouse 鼠标事件的回调函数 userdata 传递给回...
    99+
    2024-04-02
  • 如何实现Data URI scheme以及实图片 base64 编码
    这篇文章将为大家详细讲解有关如何实现Data URI scheme以及实图片 base64 编码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、 Data...
    99+
    2024-04-02
  • python通过opencv实现批量剪切图片
    上一篇文章中,我们介绍了python实现图片处理和特征提取详解,这里我们再来看看Python通过OpenCV实现批量剪切图片,具体如下。 做图像处理需要大批量的修改图片尺寸来做训练样本,为此本程序借助ope...
    99+
    2022-06-04
    批量 图片 python
  • Java+OpenCV实现图片中的人脸识别
    目录MatOfRect.detectMultiScale函数实现代码ImageViewer.javaDetectFace.java运行把识别出来的脸存成文件经过前三个教程,我们可以知...
    99+
    2024-04-02
  • Python+OpenCV实现图片中的圆形检测
    效果展示 中心的三个没检测到 import cv2 import numpy as np import matplotlib.pyplot as plt w = 20 h ...
    99+
    2024-04-02
  • OpenCV实现图片亮度增强或减弱
    本文实例为大家分享了OpenCV实现图片亮度增强或减弱的具体代码,供大家参考,具体内容如下 对每个像素点的三通道值进行同步放大,同时保持通道值在0-255之间 将图像中的像素限制在最...
    99+
    2024-04-02
  • java实现图片验证码
    本文实例为大家分享了java实现图片验证码的具体代码,供大家参考,具体内容如下 目的: 1) 验证操作者是否是人 2) 防止表单重复提交 生成验证码的要点: 1) 使用java代码生...
    99+
    2024-04-02
  • python中opencv实现图片文本倾斜校正
    本项目为python项目需要安装python及python的opencv模块:opencv_python-4.0.1-cp37-cp37m-win32.whl 和 python的矩阵...
    99+
    2024-04-02
  • opencv实现矿石图片检测矿石数量
    本文实例为大家分享了opencv矿石图片检测矿石数量的具体代码,供大家参考,具体内容如下 原始矿石图片 此类图片是高躁图,二值化后图像如下 采用膨胀的方法去除黑色噪点 二值图黑...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作