Python 使用多种方法对图像进行锐化处理——图像处理
通过使用不同方法对图像进行锐化处理,更改参数对比图像显示,代码如下:
# (6)、随机读取一幅图像,对其进行锐化,
#导入库
import cv2
import skimage.filters as af
import skimage.filters
import matplotlib.pyplot as plt
from PIL import Image
from PIL import ImageFilter
from PIL.ImageFilter import FIND_EDGES,EDGE_ENHANCE,EDGE_ENHANCE_MORE,SHARPEN# im=Image.open("image_01/肾穿病理镜下图片.png")
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 导入图片
img_01=cv2.imread("img.png")
# 转换灰度
img=cv2.cvtColor(img_01, cv2.COLOR_BGR2GRAY)# 显示图像
def show_img(ax_img,img,title,cmap="gray"):ax_img.imshow(img, cmap)ax_img.set_title(title)ax_img.set_axis_off()# 方法1:对公式中的总数取不同的值,对比显示实验结果;公式:锐化图像=原始图像+(原始图像-模糊图像)
def fun_01():# 高斯滤波器img_gaussianBlur = cv2.GaussianBlur(img, (3, 3), 1)# 锐化图像=原始图像+(原始图像-模糊图像)im_fun_01=img+(img-img_gaussianBlur)*10im_fun_02 = img + (img - img_gaussianBlur) * 20im_fun_03 = img + (img - img_gaussianBlur) * 30fig,(ax_img,im1,im2,im3)=plt.subplots(1,4)# 显示图像show_img(ax_img,img,"原始图像")show_img(im1,im_fun_01,"总数=10")show_img(im2,im_fun_02,"总数=20")show_img(im3, im_fun_03, "总数=30")plt.show()# 方法2:对参数radius与amount取不同的值,对比显示实验结果;
def fun_02():im_upsharp_1= skimage.filters.unsharp_mask(img, radius=1.0, amount=100.0, multichannel=False, preserve_range=False)im_upsharp_2=skimage.filters.unsharp_mask(img, radius=2.0, amount=50.0, multichannel=False, preserve_range=False)im_upsharp_3 = skimage.filters.unsharp_mask(img, radius=10.0, amount=80.0, multichannel=False, preserve_range=False)fig, (ax_img, im1, im2, im3) = plt.subplots(1, 4)# 显示图像show_img(ax_img, img, "原始图像")show_img(im1, im_upsharp_1, "im_upsharp_1")show_img(im2, im_upsharp_2, "im_upsharp_2")show_img(im3, im_upsharp_3, "im_upsharp_3")plt.show()# 方法3:按照实验指导取不同的参数,对比显示实验结果。
def fun_03():im=Image.open("img.png")im_01=im.filter(FIND_EDGES)im_02=im.filter(EDGE_ENHANCE)im_03=im.filter(EDGE_ENHANCE_MORE)im_04=im.filter(SHARPEN)fig, (ax_img, im1, im2, im3) = plt.subplots(1, 4)# 显示图像show_img(ax_img,img,"原始图像")show_img(im1,im_01,"总数=10")show_img(im2,im_02,"总数=20")show_img(im3, im_03, "总数=30")plt.show()if __name__ == '__main__':fun_01()fun_02()fun_03()
运行结果:
fun_01()
fun_02()
fun_03()
Python 使用多种方法对图像进行锐化处理——图像处理相关推荐
- Fib(兔子问题)python实现多种方法
# 斐波那契数列是学计算机入门最经典的一道题目# 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci) # 以 ...
- Python使用数学形态学方法处理图像
本文要点在于Python扩展库numpy.scipy.matplotlib的用法和数学形态学中开.闭.腐蚀.膨胀等运算的实现. >>> import numpy as np > ...
- 通过python使用多种方法改变图片尺寸
图片拉伸改变尺寸 文章目录 图片拉伸改变尺寸 使用PIL库 使用PythonMagick库 保持比例 不保持比例 使用PIL库 使用PIL库当中的Image功能即可实现对图片的拉伸. 在下列代码中,我 ...
- python怎么读文件内容-Python读取文件内容为字符串的方法(多种方法详解)
以下笔记是我在 xue.cn 学习群之数据分析小组所整理分享的心得.相关背景是:我选择中文词频统计案例作为考察大家python基础功掌握程度. 以小见大,下面是2个小技能的具体实战: 如何灵活地处理文 ...
- python判断字母数字_Python判断字符串是否为字母或者数字(浮点数)的多种方法
str为字符串s为字符串 str.isalnum() 所有字符都是数字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 str.isspace() ...
- python去重语句_Python对列表去重的多种方法(四种方法)
无聊统计了下列表去重到底有多少种方法.下面小编给大家总结一下,具体内容详情如下: 开发中对数组.列表去重是非常常见的需求,对一个list中的id进行去重,有下面几种方法,前面两种方法不能保证顺序, 后 ...
- python清空集合_python集合删除多种方法详解
这篇文章主要介绍了python集合删除多种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 删除指定的元素 A={'a','c','b','d ...
- python两张图合成一张_Python图像处理实现两幅图像合成一幅图像的方法【测试可用】...
本文实例讲述了Python图像处理实现两幅图像合成一幅图像的方法.分享给大家供大家参考,具体如下: 将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅 ...
- python 多重列表去重_Python对列表去重的多种方法(四种方法)
Python对列表去重的多种方法(四种方法) 无聊统计了下列表去重到底有多少种方法.下面小编给大家总结一下,具体内容详情如下: 开发中对数组.列表去重是非常常见的需求,对一个list中的id进行去重, ...
最新文章
- Linux必学的网络操作命令
- numpy可视化教程
- SpringMVC学习总结(2)——SpringMVC返回json配置
- android 制作的精美闹钟
- jQuery的ajax()、post()方法提交数组,参数[] 问题
- 从早期的初创企业到MongoDB的经理(播客)
- 阿里中台建设全解密:包含哪些内容?如何发挥作用?
- 2008不可错过的好莱坞电影
- 关于var、let和const
- 弹窗编辑jsp报表内数据
- 最佳路径搜索(一):盲目搜索(深度优先,广度优先,深度限制,迭代加深)
- 使用 travis + gitbook + github pages 优雅地发布自己的书
- 两个9014三极管简易开关电路分析
- tensorflow获取tensor的shape
- codeforces #630 F. Selection of Personnel
- 三十岁以后,我一定能阔起来!
- 斗鱼爬取主播相册爬虫函数封装
- 华为云、百度云 群控系统开发流程
- 利用CompletableFuture集齐7龙珠
- 如何在Mac上获取App Store的ipa包(非越狱手机也可以)