opencvpython图像代码_PythonOpenCV各种图像库的图像读写 增强 方式的简单介绍(附代码)...
resize给定高和宽的像数值
img = cv2.imread('../96.jpg',0) # 0表示读入灰色图片,1表示读入彩色图片
resized = cv2.resize(img, (100,100), interpolation = cv2.INTER_AREA)
print(np.array(resized).shape)
cv2.imwrite("11.jpg",img)
图像各种增强转化代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 导入库
import cv2
import numpy as np
import random #random模块用于生成随机数
import tensorflow as tf
import matplotlib.pyplot as plt
import imutils #3
from PIL import Image
from PIL import ImageEnhance
# 执行图片缩放
def zoom(read,out,name):
image = cv2.imread(read+name)
r = 100.0 / image.shape[1]
dim = (95, int(image.shape[0] * r))
# 执行图片缩放,并显示
resized = cv2.resize(image, dim, interpolation=cv2.INTER_AREA)
# cv2.imshow("resized", resized) #17
# cv2.waitKey(0) #18
write(out, "zoom_" + name, resized)
#对比度亮度
def turn(read,out,name):
pic = cv2.imread(read+name) #读入图片
contrast = 1 #对比度
brightness = 80 #亮度
pic_turn = cv2.addWeighted(pic,contrast,pic,0,brightness)
#cv2.addWeighted(对象,对比度,对象,对比度)
'''cv2.addWeighted()实现的是图像透明度的改变与图像的叠加'''
# cv2.imshow('turn', pic_turn) #显示图片
# cv2.waitKey(0) # 18
write(out, "pic_turn_" + name, pic_turn)
#噪声
def pic_noise(read,out,name):
pic = cv2.imread(read+name)
for i in range(150):
pic[random.randint(0, pic.shape[0]-1)][random.randint(0,pic.shape[1]-1)][:]=255
# cv2.imshow('pic_noise', pic)
# cv2.waitKey(0) # 18
write(out, "pic_" + name, pic)
#随机裁剪
def crop_img():
img = cv2.imread("5.jpg")
#将图片进行随机裁剪为280×280
crop_img = tf.random_crop(img,[280,280,3])
sess = tf.InteractiveSession()
#显示图片
# cv2.imwrite("img/crop.jpg",crop_img.eval())
plt.figure(1)
plt.subplot(121)
#将图片由BGR转成RGB
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.title("原始图片")
plt.subplot(122)
crop_img = cv2.cvtColor(crop_img.eval(),cv2.COLOR_BGR2RGB)
plt.title("裁剪后的图片")
plt.imshow(crop_img)
plt.show()
sess.close()
#移动
def move(read,out,name):
image = cv2.imread(read+name) #8
# cv2.imshow("原始图片", image) #9
M = np.float32([[1, 0, 35], [0, 1, 35]]) #10
shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0])) #11
# cv2.imshow("Shifted Down and Right", shifted) #12
write(out,"sdar_"+name,shifted)
M = np.float32([[1, 0, -30], [0, 1, -30]]) #13
shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0])) #14
# cv2.imshow("Shifted Up and Left", shifted) #15
write(out, "sual_" + name, shifted)
shifted = imutils.translate(image, 0, 20) #16
# cv2.imshow("Shifted down", shifted) #17
# write(out, "sd_" + name, shifted)
# cv2.waitKey(0) #18
def write(out,name,image):
cv2.imwrite(out + name, image)
#亮度增强
def brightness(read,out,name):
image = Image.open(read+name)
# 亮度增强,增强因子为0.0将产生黑色图像;为1.0将保持原始图像。
enh_bri = ImageEnhance.Brightness(image)
image_brightened = enh_bri.enhance(1.5)
image_brightened.save(out+"brightness1_" + name)
image_brightened = enh_bri.enhance(0.8)#变暗
image_brightened.save(out + "brightness2_" + name)
#色度增强
def color(read,out,name):
image = Image.open(read + name)
# 色度,增强因子为1.0是原始图像
enh_col = ImageEnhance.Color(image)
# 色度增强
image_colored = enh_col.enhance(1.5)
image_colored.save(out+"image_colored_1_" + name)
# 色度减弱
image_colored1 = enh_col.enhance(0.8)
image_colored1.save(out + "image_colored_2_" + name)
def enhance(read,out,name):
image = Image.open(read + name)
enh_con = ImageEnhance.Contrast(image)
# 对比度,增强因子为1.0是原始图片
# 对比度增强
image_contrasted = enh_con.enhance(1.5)
image_contrasted.save(out+"enh_con1_" + name)
image_contrasted = enh_con.enhance(0.8)
image_contrasted.save(out+"enh_con2_" + name)
def blur_demo(read,out,name):#平均模糊
image = cv2.imread(read + name) # 8
dst = cv2.blur(image,(5,5))
# cv2.imshow('blur1', dst)
write(out, "blur1_" + name, dst)
dst = cv2.blur(image, (10, 10))
write(out, "blur2_" + name, dst)
# cv2.imshow('blur2',dst)
# write(out, "sd_" + name, shifted)
# cv2.waitKey(0) #18
def run(readPath, out, picture):
move(readPath, out, picture)
zoom(readPath, out, picture)
pic_noise(readPath, out, picture)
turn(readPath, out, picture)
brightness(readPath, out, picture)
color(readPath, out, picture)
enhance(readPath, out, picture)
blur_demo(readPath, out, picture)
'''
out = "D:\\tmp\\a1\\"
picture = "396.jpg"
readPath = "D:\\tmp\\other\\"
run(readPath, out, picture)
'''
'''
#-*- coding: UTF-8 -*-
from PIL import Image
from PIL import ImageEnhance
#原始图像
image = Image.open('lena.jpg')
image.show()
#亮度增强
enh_bri = ImageEnhance.Brightness(image)
brightness = 1.5
image_brightened = enh_bri.enhance(brightness)
image_brightened.show()
#色度增强
enh_col = ImageEnhance.Color(image)
color = 1.5
image_colored = enh_col.enhance(color)
image_colored.show()
#对比度增强
enh_con = ImageEnhance.Contrast(image)
contrast = 1.5
image_contrasted = enh_con.enhance(contrast)
image_contrasted.show()
#锐度增强
enh_sha = ImageEnhance.Sharpness(image)
sharpness = 3.0
image_sharped = enh_sha.enhance(sharpness)
image_sharped.show()
'''
opencvpython图像代码_PythonOpenCV各种图像库的图像读写 增强 方式的简单介绍(附代码)...相关推荐
- STM32读写内部Flash(介绍+附代码)
概述 内部flash读写详解 一.介绍 首先我们需要了解一个内存映射: stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片 ...
- 李飞飞团队最新论文:如何对图像中的实体精准“配对”?(附代码论文)
来源:AI科技大本营(公众号ID:rgznai100) 编译:费棋 本文共5749字,建议阅读10分钟. 近日,李飞飞的斯坦福大学视觉实验室发布了一篇即将在 CVPR 2018上要介绍的论文 Refe ...
- 图像的几种变换简单介绍
刚体变换 平移+旋转 保持欧式距离的变换,这意味着图像只进行2D平移和2D旋转运动.它只有3个自由度. 相似变换 平移+旋转+缩放 相比刚体变换增加了均匀的缩放.均匀的意思是各个方向的缩放比例相同.尺 ...
- STM32学习笔记:读写内部Flash(介绍+附代码)
一.介绍 首先我们需要了解一个内存映射: stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同. RAM起 ...
- java实现图像对比度增强_java图片对比度调整示例代码
java图片对比度调整示例代码 发布于 2020-12-31| 复制链接 摘记: 前言本文主要给大家介绍了关于java图片对比度调整的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍 ...
- python pandas csv 写文件_Pandas读写CSV文件的方法介绍(附代码)
本篇文章给大家带来的内容是关于Pandas读写CSV文件的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 读csv:使用pandas读取import pandas ...
- Python各类图像库的图片读写方式总结
最近在研究深度学习视觉相关的东西,经常需要写python代码搭建深度学习模型.比如写CNN模型相关代码时,我们需要借助python图像库来读取图像并进行一系列的图像处理工作.我最常用的图像库当然是op ...
- python做图像处理快不快_Python 图像读写谁最快?不信就比一比
图像处理,顾名思义,是对图像进行的各种转换.计算等处理.图像处理必不可少地需要读写图像文件. 图像文件的读取,就是将图像数据从磁盘中的文件内读入内存,之后按照图像解码标准解码,最后把图像各像素的值存储 ...
- aerials标准测试图像_Python 图像读写谁最快?不信就比一比
图像处理,顾名思义,是对图像进行的各种转换.计算等处理.图像处理必不可少地需要读写图像文件. 图像文件的读取,就是将图像数据从磁盘中的文件内读入内存,之后按照图像解码标准解码,最后把图像各像素的值存储 ...
最新文章
- Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结
- HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
- 利用python下载网页到本地(python3)
- QT教程3: 日期和时间的对象操作
- java poi 更新excel_在Java Apache POI中更新现有的Excel文件
- 仓储模式到底是不是反模式?
- [设计模式]装饰模式
- Kibana入门安装与介绍
- LeetCode 447. 回旋镖的数量(哈希map+组合数)
- 《PHP和MySQL Web开发从新手到高手(第5版)》一2章 MySQL简介2.1 数据库简介
- 数据本地存储方法封装(笔记)localStorage、sessionStorage
- python zip dict函数
- 为什么不推荐使用BeanUtils属性转换工具,老程序员都不使用!
- ogre 1.9SDK阅读笔记
- Linux进程管理之SMP负载平衡
- android签名打包v1和v2的区别
- 解决 Mac OS 下罗技鼠标滚轮无法使用问题(滚动失效)
- plsqldev、oracle插入中文乱码问题解决
- 爬取豆瓣网电视剧数据(共1500条)
- 苹果手机计算机没有记录吗,苹果手机恢复出厂设置备忘录里的便签内容都没了,怎么找回来啊...
热门文章
- SQL SERVER 2000数据库,转换为ACCESS数据库(已解决ACCESS自动编号问题)
- 【7-4使用inception-v3做各种图像的识别】
- lr 中cookie的解释与用法
- MySQL操作之条件,排序,分页,聚合函数,分组,连接,子查询,自连接查询总结...
- TensorFlow | ReluGrad input is not finite. Tensor had NaN values
- 解决编译错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
- git push 使用总结
- IE8下JQuery clone 出的select元素使用append添加option异常解决记录
- 编写一个程序解决选择问题。令k=N/2。
- java基础之----java常见异常及代码示例