计算机视觉编程 3(图片处理)

news2024/11/13 10:42:12

目录

图像差分

 高斯差分

形态学-物体计数

​编辑 

图片降噪


图像差分

# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *
from scipy.ndimage import filters
import numpy

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)

im = array(Image.open('图片路径').convert('L'))
gray()

subplot(1, 4, 1)
axis('off')
title(u'(a)原图', fontproperties=font)
imshow(im)

# Sobel derivative filters
imx = zeros(im.shape)
filters.sobel(im, 1, imx)
subplot(1, 4, 2)
axis('off')
title(u'(b)x方向差分', fontproperties=font)
imshow(imx)

imy = zeros(im.shape)
filters.sobel(im, 0, imy)
subplot(1, 4, 3)
axis('off')
title(u'(c)y方向差分', fontproperties=font)
imshow(imy)

#mag = numpy.sqrt(imx**2 + imy**2)
mag = 255-numpy.sqrt(imx**2 + imy**2)
subplot(1, 4, 4)
title(u'(d)梯度幅度', fontproperties=font)
axis('off')
imshow(mag)

show()

 高斯差分

# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *
from scipy.ndimage import filters
import numpy

# 添加中文字体支持
#from matplotlib.font_manager import FontProperties
#font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)

def imx(im, sigma):
    imgx = zeros(im.shape)
    filters.gaussian_filter(im, sigma, (0, 1), imgx)
    return imgx


def imy(im, sigma):
    imgy = zeros(im.shape)
    filters.gaussian_filter(im, sigma, (1, 0), imgy)
    return imgy


def mag(im, sigma):
    # there's also gaussian_gradient_magnitude()
    #mag = numpy.sqrt(imgx**2 + imgy**2)
    imgmag = 255 - numpy.sqrt(imgx ** 2 + imgy ** 2)
    return imgmag


im = array(Image.open('图片路径').convert('L'))
figure()
gray()

sigma = [2, 5, 10]

for i in  sigma:
    subplot(3, 4, 4*(sigma.index(i))+1)
    axis('off')
    imshow(im)
    imgx=imx(im, i)
    subplot(3, 4, 4*(sigma.index(i))+2)
    axis('off')
    imshow(imgx)
    imgy=imy(im, i)
    subplot(3, 4, 4*(sigma.index(i))+3)
    axis('off')
    imshow(imgy)
    imgmag=mag(im, i)
    subplot(3, 4, 4*(sigma.index(i))+4)
    axis('off')
    imshow(imgmag)

show()

形态学-物体计数

# -*- coding: utf-8 -*-
from PIL import Image
from numpy import *
from scipy.ndimage import measurements, morphology
from scipy.ndimage import laplace
from pylab import *

"""   This is the morphology counting objects example in Section 1.4.  """

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)

# load image and threshold to make sure it is binary
figure()
gray()
im = array(Image.open('图片路径').convert('L'))
subplot(221)
imshow(im)
axis('off')
title(u'原图', fontproperties=font)
im = (im < 128)

labels, nbr_objects = measurements.label(im)
print ("Number of objects:", nbr_objects)
subplot(222)
imshow(labels)
axis('off')
title(u'标记后的图', fontproperties=font)

# morphology - opening to separate objects better
im_open = morphology.binary_opening(im, ones((9, 5)), iterations=2)
subplot(223)
imshow(im_open)
axis('off')
title(u'开运算后的图像', fontproperties=font)

labels_open, nbr_objects_open = measurements.label(im_open)
print ("Number of objects:", nbr_objects_open)
subplot(224)
imshow(labels_open)
axis('off')
title(u'开运算后进行标记后的图像', fontproperties=font)

show()

 

 

图片降噪

# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *
from numpy import *
from numpy import random
from scipy.ndimage import filters
#from scipy.misc import imsave
#import cv2 as cv
from PCV.tools import rof

""" This is the de-noising example using ROF in Section 1.5. """

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)

im = array(Image.open('图片路径').convert('L'))

U,T = rof.denoise(im,im)
G = filters.gaussian_filter(im,10)


# save the result
#imsave('synth_original.pdf',im)
#imsave('synth_rof.pdf',U)
#imsave('synth_gaussian.pdf',G)


# plot
figure()
gray()

subplot(1,3,1)
imshow(im)
#axis('equal')
axis('off')
title(u'原噪声图像', fontproperties=font)

subplot(1,3,2)
imshow(G)
#axis('equal')
axis('off')
title(u'高斯模糊后的图像', fontproperties=font)

subplot(1,3,3)
imshow(U)
#axis('equal')
axis('off')
title(u'ROF降噪后的图像', fontproperties=font)

show()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2080041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一键编辑,轻松实现废品回收小程序多平台发布

创建废品回收小程序&#xff0c;简化开发流程&#xff0c;让创意即刻上线&#xff01;借助乔拓云平台&#xff0c;只需简单几步&#xff0c;即可拥有个性化的小程序页面。 在乔拓云网站&#xff0c;登录小程序后端开始设计&#xff0c;点击“设计小程序”&#xff0c;一个直观易…

一场意外从 Android 开发岗到鸿蒙开发岗~

经历&#xff1a; 在 Android 开发领域已经耕耘了数年&#xff0c;对 Android 系统的架构、开发模式和各种技术都非常熟悉。然而&#xff0c;由于市场的变化和公司业务的调整&#xff0c;我所在的团队接到通知要逐步转向鸿蒙开发。 一开始&#xff0c;得知这个消息时我感到有些…

软件测试需要学习的知识有哪些?这些你一定没学过

1、测试基础 软件&#xff1a;控制计算机硬件工作的工具&#xff08;客户端&#xff0c;服务器&#xff0c;数据库&#xff09; 软件测试&#xff1a;使用技术手段验证软件是否满足使用需求 目的&#xff1a;减少缺陷&#xff0c;保证质量 2、测试主流技能&#xff1a; 1&…

使用DDU卸载显卡驱动并更新

使用DDU卸载显卡驱动并更新 安装环境 首先到英伟达官网去下载你想要的驱动,根据你的显卡型号选择你想要的驱动,一般都是选大版本最后几个小版本 笔记本选带后缀(Notebooks) 然后下载Display Driver Uninstaller (DDU卸载工具),保存在任意位置(一般在c盘下) 卸载驱动 安全模…

【Qt】容器类控件GroupBox

容器类控件GroupBox 使用QGroupBox实现一个带有标题的分组框&#xff0c;可以把其他的控件放在里面里面作为一组&#xff0c;这些内部的控件的父元素也就不是this了。 其目的只是为了让界面看起来更加好看&#xff0c;例如当一个界面比较复杂的时候&#xff0c;包含了很多的控…

python Pillow 把一个图片复制3次

1. 先看效果 输入图片 输出图片 输入图片 输出图片 代码 来源: kimi , https://kimi.moonshot.cn/chat/cr6ug39mqu053qm0sfsg from PIL import Image import os# 对于一个 1365*2048 的图片&#xff0c;进行复制3次 def duplicate_and_combine_horizontally(image_path):# …

Java进阶13讲__第五讲

JDK8新特性-Lambda 1.认识Lambda 2.Lambda表达式的省略写法 进一步简化Lambda表达式的写法 package cn.hdc.oop5.lambda;import java.util.Arrays; import java.util.Comparator;public class Test2 {public static void main(String[] args) {double[] price {99.8, 128, 1…

Python 从入门到实战2(实例1:计算圆的面积)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 看视频太慢&#xff0c;一起照着来练习吧&#xff01;今天我们通过…

81、k8s网络配置以及k8s拉取私有仓库

一、k8s架构安装部署 k8s架构master 192.168.168.81 docker、kubeadm、kubelet、kubectl、flannel node01 192.168.168.82 docker kubeadm kubelet kubectl flannel node02 192.168.168.83 docker、kubeadm、kubelet、kubectl、flannel#关闭防火墙 [rootk8s1 ~]# sys…

海睿思通过华东江苏大数据交易中心数商认证,提供高质量数据治理服务!

近日&#xff0c;中新赛克海睿思成功通过华东江苏大数据交易中心的数商认证&#xff0c;获得华东江苏大数据交易中心颁发的“数据治理服务商”证书。 华东数交是在实施“国家大数据战略”大背景下&#xff0c;经国家批准的华东地区首个省级特色数据要素交易平台&#xff0c;致力…

2024年8月20日~2024年8月26日周报

目录 一、前言 二、完成情况 2.1 解决网络波动问题——学习率 2.2 设计盐数据速度模型展示图 三、下周计划 一、前言 上周主要完成&#xff1a; ①与老师讨论损失函数与介绍部分内容&#xff1b;②基于盐数据设计TU-Net的网络架构&#xff0c;并思考如何引出该网络架构&a…

一. 初始 Spring Boot

一. 初始 Spring Boot 文章目录 一. 初始 Spring Boot1. Spring Boot 是什么&#xff1f;2. Spring Boot 官方文档地址3. 第一个 Spring Boot 程序3.1 我的环境工具配置 4. 第一个 SpringBoot 程序解释说明5. Spring&#xff0c;SpringMVC&#xff0c; SpringBoot 三者的关系6.…

8月27复盘日记

8月27复盘日记 前言今日感恩今日知识今日反思今日名言 前言 今天早上是七点半起床嘻嘻&#xff0c;昨晚和舍友聊天&#xff0c;分享小时候的趣事&#xff0c;以及一些观点&#xff0c;聊得有些激动&#xff0c;就比较难以入睡   今天天气又是超级让人幸福&#xff01;&#x…

c++类的封装

目录 有参构造函数对象 无参数构造函数 封装可是个好东西呢&#x1f609; 它能让你的代码更简洁、更安全&#xff0c;也更容易维护。就像把你的宝贝都放进一个漂亮的盒子里&#xff0c;不仅整齐好看&#xff0c;还能保护它们不被弄坏&#x1f381;。而且啊&#xff0c;封装还…

【C++ 面试 - 内存管理】每日 3 题(五)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

项目策划书六度自由双足机器人

一、项目的简要介绍 双足机器人的机构是所有部件的载体,也是设计双足机器人最基本的和首要的工作。本文根据项目规划和控制任务要求&#xff0c;按照从总体到部分、由主到次的原则&#xff0c;设计了一种适合仿人双足机器人控制的机构.文章首先从机构的设计目标出发&#xff0c…

条件拼接 - 根据入参生成where条件

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 条件拼接 - 根据入参生成where条件 前言一、GraphConditionEnum 支持的条件二、ConditionServiceImpl 实现类三、DbDataTypeEnum 入参的数据类型四、GraphTypeEnum 图数据的类…

【C/C++】int类型32位有符号整数的含义

在C语言中&#xff0c;int类型的取值范围是有符号的32位整数&#xff0c;即-2,147,483,648到2,147,483,647。‌ 这个范围是由int类型在32位系统上的存储大小决定的。具体来说&#xff0c;int类型在C语言中占4个字节&#xff0c;即32个二进制位。当表示正数时&#xff0c;最高位…

从永远到永远-日语学习-动词三分类及ます变形

动词三分类 0.前置知识1.动词三分类3.判断方法4.变形 0.前置知识 讨论的都是基于动词原形动词变ます形&#xff0c;是因为小日子骨子里的假客套&#xff0c;ます形比较礼貌。日语所有动词原型都是う段结尾五段动词联想う段动2、动3原型都是る结尾上一段动词&#xff08;い段る…

PS制作曲线背景

新建图层->设置颜色 钢笔->画个路径 画笔->柔边缘5像素 描边路径->工具->模拟压力 图层->Ctrl->缩略图 编辑->定义画笔预设 F5->画笔设置->间距5%->形状动态->角度抖动300