iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中图片采样处理的示例分析
  • 114
分享到

Python中图片采样处理的示例分析

2023-06-29 02:06:13 114人浏览 独家记忆

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

摘要

这篇文章给大家分享的是有关python中图片采样处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.图像采样处理原理图像采样(Image Sampling)处理是将一幅连续图像在空间上分割成M&

这篇文章给大家分享的是有关python中图片采样处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一.图像采样处理原理

图像采样(Image Sampling)处理是将一幅连续图像在空间上分割成M×N个网格,每个网格用一个亮度值或灰度值来表示,其示意图如图9-1所示。

Python中图片采样处理的示例分析

图像采样的间隔越大,所得图像像素数越少,空间分辨率越低,图像质量越差,甚至出现马赛克效应;相反,图像采样的间隔越小,所得图像像素数越多,空间分辨率越高,图像质量越好,但数据量会相应的增大。图9-2展示了不同采样间隔的“Lena”图,其中图(a)为原始图像,图(b)为128×128的图像采样效果,图©为64×64的图像采样效果,图(d)为32×32的图像采样效果,图(e)为16×16的图像采样效果,图(f)为8×8的图像采样效果[1-3]。

Python中图片采样处理的示例分析

二.图像采样实现

下面讲述Python图像采样处理相关代码操作。其核心流程是建立一张临时图片,设置需要采样的区域大小(如16×16),接着循环遍历原始图像中所有像素点,采样区域内的像素点赋值相同(如左上角像素点的灰度值),最终实现图像采样处理。

# -*- coding: utf-8 -*-# By:Eastmountimport cv2  import numpy as np  import matplotlib.pyplot as plt#读取原始图像img = cv2.imread('lena-hd.png')#获取图像高度和宽度height = img.shape[0]width = img.shape[1]#采样转换成16*16区域numHeight = int(height/16)numWidth = int(width/16)#创建一幅图像new_img = np.zeros((height, width, 3), np.uint8)#图像循环采样16*16区域for i in range(16):    #获取Y坐标    y = i*numHeight    for j in range(16):        #获取X坐标        x = j*numWidth        #获取填充颜色 左上角像素点        b = img[y, x][0]        g = img[y, x][1]        r = img[y, x][2]                #循环设置小区域采样        for n in range(numHeight):            for m in range(numWidth):                new_img[y+n, x+m][0] = np.uint8(b)                new_img[y+n, x+m][1] = np.uint8(g)                new_img[y+n, x+m][2] = np.uint8(r)        #显示图像cv2.imshow("src", img)cv2.imshow("Sampling", new_img)#等待显示cv2.waiTKEy(0)cv2.destroyAllwindows()

其输出结果如图9-3所示,它将灰度图像采样成16×16的区域。

Python中图片采样处理的示例分析

同样,可以对彩色图像进行采样处理,下面的代码将“小珞珞”的图像采样处理成8×8的马赛克区域。

# -*- coding: utf-8 -*-# By:Eastmountimport cv2  import numpy as np  import matplotlib.pyplot as plt#读取原始图像img = cv2.imread('luo.png')#获取图像高度和宽度height = img.shape[0]width = img.shape[1]#采样转换成8×8区域numHeight = int(height/8)numwidth = int(width/8)#创建一幅图像new_img = np.zeros((height, width, 3), np.uint8)#图像循环采样8*8区域for i in range(8):    #获取Y坐标    y = i*numHeight    for j in range(8):        #获取X坐标        x = j*numwidth        #获取填充颜色 左上角像素点        b = img[y, x][0]        g = img[y, x][1]        r = img[y, x][2]                #循环设置小区域采样        for n in range(numHeight):            for m in range(numwidth):                new_img[y+n, x+m][0] = np.uint8(b)                new_img[y+n, x+m][1] = np.uint8(g)                new_img[y+n, x+m][2] = np.uint8(r)        #显示图像cv2.imshow("src", img)cv2.imshow("Sampling", new_img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

其输出结果如图9-4所示,它将彩色图像采样成8×8的区域。

Python中图片采样处理的示例分析

但上述代码存在一个问题,当图像的长度和宽度不能被采样区域整除时,输出图像的最右边和最下边的区域没有被采样处理。这里推荐读者做个求余运算,将不能整除部分的区域也进行相应的采样处理。

三.图像局部采样处理

前面讲述的代码是对整幅图像进行采样处理,那么如何对图像的局部区域进行马赛克处理呢?下面的代码就实现了该功能。当鼠标按下时,它能够给鼠标拖动的区域打上马赛克,并按下“s”键保存图像至本地。

# -*- coding: utf-8 -*-# By:Eastmountimport cv2  import numpy as np  import matplotlib.pyplot as plt#读取原始图像im = cv2.imread('luo.png', 1)#设置鼠标左键开启en = False#鼠标事件def draw(event, x, y, flags, param):    global en    #鼠标左键按下开启en值    if event==cv2.EVENT_LBUTTONDOWN:        en = True    #鼠标左键按下并且移动    elif event==cv2.EVENT_MOUSEMOVE and flags==cv2.EVENT_LBUTTONDOWN:        #调用函数打马赛克        if en:            drawMask(y,x)        #鼠标左键弹起结束操作        elif event==cv2.EVENT_LBUTTONUP:            en = False          #图像局部采样操作         def drawMask(x, y, size=10):    #size*size采样处理    m = int(x / size * size)    n = int(y / size * size)    print(m, n)    #10*10区域设置为同一像素值    for i in range(size):        for j in range(size):            im[m+i][n+j] = im[m][n]#打开对话框cv2.namedWindow('image')#调用draw函数设置鼠标操作cv2.setMouseCallback('image', draw)#循环处理while(1):    cv2.imshow('image', im)    #按ESC键退出    if cv2.waitKey(10)&0xFF==27:        break    #按s键保存图片    elif cv2.waitKey(10)&0xFF==115:        cv2.imwrite('sava.png', im)#退出窗口cv2.destroyAllWindows()

其输出结果如图9-5所示,它将人物的脸部进行马赛克处理。

Python中图片采样处理的示例分析

感谢各位的阅读!关于“Python中图片采样处理的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Python中图片采样处理的示例分析

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中图片采样处理的示例分析
    这篇文章给大家分享的是有关Python中图片采样处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.图像采样处理原理图像采样(Image Sampling)处理是将一幅连续图像在空间上分割成M&...
    99+
    2023-06-29
  • Python图片处理之图片裁剪的示例分析
    小编给大家分享一下Python图片处理之图片裁剪的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、操作流程首先会吧?有张照片这是网上随便找的一张照片,自行保存测试看看照片运行代码,其中show_img函数是展示照...
    99+
    2023-06-15
  • Python图片处理之图片采样处理详解
    目录一.图像采样处理原理二.图像采样实现三.图像局部采样处理四.总结一.图像采样处理原理 图像采样(Image Sampling)处理是将一幅连续图像在空间上分割成M×N...
    99+
    2022-11-13
  • webpack4图片处理的示例分析
    这篇文章给大家分享的是有关webpack4图片处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码目录(如下图所示):讲述 webpack4 中的图片常用的基础操作:...
    99+
    2022-10-19
  • Python中图像量化处理的示例分析
    小编给大家分享一下Python中图像量化处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.图像量化处理原理量化(Quantization)旨在将图像...
    99+
    2023-06-29
  • Python采集图片数据的实现示例
    目录前言:发送请求保存数据保存图片总结:前言: 在网络时代,图片已经成为了我们生活中不可或缺的一部分。随着各种社交媒体的兴起,我们可以在网上看到越来越多的图片,但是如何从这些图片中获...
    99+
    2023-05-17
    Python采集图片 Python图片采集
  • Android图片处理实例分析
    本文实例讲述了Android图片处理的方法。分享给大家供大家参考,具体如下: package cn.szbw.util; import Android.content.Con...
    99+
    2022-06-06
    Android
  • JavaScript中图片库的示例分析
    这篇文章将为大家详细讲解有关JavaScript中图片库的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、一个javascript 图片库实例,下面是效果图点击...
    99+
    2022-10-19
  • HTML5中picture元素响应式处理图片的示例分析
    这篇文章主要介绍了HTML5中picture元素响应式处理图片的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。响应式设计所谓的响应式设计,是指在不同的屏幕分辨率,不同...
    99+
    2023-06-09
  • Bootstrap中图片轮播的示例分析
    小编给大家分享一下Bootstrap中图片轮播的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Bootstrap是什么Bootstrap是目前最受欢迎的前端框架,它是基于 HTML、CSS、JAVASCRIPT 的...
    99+
    2023-06-14
  • vue中图片引入的示例分析
    这篇文章给大家分享的是有关vue中图片引入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。图片引入无非是路径问题,路径就会有绝对路径,和相对路径这两个说法。有一种引入方式就是直接引入绝对路径<img...
    99+
    2023-06-02
  • CSS中图片Base64编码的示例分析
    这篇文章主要介绍了CSS中图片Base64编码的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是 base64 编码  我不是来讲概念的,直接切入正题,图片的 b...
    99+
    2023-06-15
  • Python+OpenCV图像处理之直方图统计的示例分析
    这篇文章主要为大家展示了“Python+OpenCV图像处理之直方图统计的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python+OpenCV图像处理之直方图统计的示例分析”这篇文章...
    99+
    2023-06-22
  • python opencv图像处理基本操作的示例分析
    本篇文章给大家分享的是有关python opencv图像处理基本操作的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。①读取图像②显示图像该函数中,name是显示窗口的名...
    99+
    2023-06-25
  • Python中opencv医学处理的示例分析
    这篇文章给大家分享的是有关Python中opencv医学处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能...
    99+
    2023-06-15
  • Shell命令行批量处理图片文件名的示例分析
    小编给大家分享一下Shell命令行批量处理图片文件名的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell 命令行批量处理图片文件名前言:从网上下载了...
    99+
    2023-06-09
  • electron-vue图片压缩的示例分析
    这篇文章给大家分享的是有关electron-vue图片压缩的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 最近用electron-vue(E...
    99+
    2022-10-19
  • CSS背景background图片的示例分析
    这篇文章将为大家详细讲解有关CSS背景background图片的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1、后盾图片语法 bac千克round-ima...
    99+
    2022-10-19
  • css中图片路径问题的示例分析
    这篇文章主要介绍css中图片路径问题的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在CSS文件里,有时要用到background,即加一个背景图片,一般在做按钮样式时会经常用到。 css中加背景图片根据图片...
    99+
    2023-06-08
  • 使用Matlab处理图像的示例分析
    小编给大家分享一下使用Matlab处理图像的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!小伙伴们可能会遇到这样一个情况,填写某些信息的时候不仅需要对图片...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作