cv2.imread(‘1.jpg’,1) 0 灰度图片,1 彩色图像
cv2.imshow(‘image’,img ) 1 表示窗体的名称, 2 表示图片的内容
cv2.waitKey(0) 程序的暂停
cv2.imwrite(‘image3.bmp’,img) #1 要写入的图片名称 2 图片数据
cv2.imwrite(‘555.jpg’,img, [cv2.IMWRITE_JPEG_QUALITY,90]) # 图像质量 范围为【0,100】 且为有损压缩,无法设置透明度
cv2.imwrite(‘11.png’,img, [cv2.IMWRITE_PNG_COMPRESSION,0])

png来说压缩范围是【0,9】

1 像素
2 RGB
3 颜色深度 8bit 0~255 三种颜色 255**3
4 w h 宽 高
1.14 = 长3通道*8bit/8 (B)
(b,g,r)= img[100,100] 像素的写入

初始化 变量显示的时候需要初始化
init = tf.global_variables_initializer()
sess=tf.Session()
with sess:
sess.run(init)
print(see.run(data2))
sess.run(init)

敞亮和变量的输入
data1 = tf.constant(2.5)
data2 = tf.Variable(10,name = ‘var’, dtype = tf.int32)

本质 tf = tensor +计算图
tensor 数据图
graphs 数据操作 session 运算的交互环境

sess.close #

print(dataCopy.eval(),)

实时改变数据
data1 = tf.plaoceholder(tf.float32)
dataADD = tf.add(data1,data2)
print(sess.run(dataADD, feed_dict = {data1 :6,data2:2))

M行N列 [ 里面,【】几个,表示几行,每个【】里面表示列数据
【【6,6】】

矩阵乘法 tf.matmul
矩阵中对应元素相乘 tf.multiply
print(sess.run(A,B))
空矩阵 tf.zeros([2,3])
全1矩阵 tf.ones([2,3])
填充矩阵 tf.fill([2,3],15)

相同维度的全0矩阵 mat2= tf.zeros_like(mat1)
0-2之间的数据分成相当的10分 tf.linspace(0,2,11)
(-1,2)之间的随机矩阵 tf.random_uniform([2,4],-1,2)

numpy
改,查
data[1,0]=5 改为5
data4= np.ones([2,4])
data4*2 data4+2
定义矩阵
data4 = np.array([1,3,5],[6,4,3])
import matplotlib.pyplot as plt
plt.plot(x,y,‘r’,lw =10) # 1.x 2. y 3. 颜色 4 线条宽度
plt.bar(x, y, 0.5, alpha=1, color = ‘b’) #5 颜色, 4 透明度 的属性 3 柱状图的宽度
plt.show()

图片缩放的方法:最近邻域插值,双线性插值,像素关系重采样,立方插值
des = cv2.resize(img,(dwidth,dheight))
cv2.imshow(‘des’,des)
cv2.waitKey
最近邻域插值: (如有小数,取最近的整数)
目标图像X =原x *(原图 行/目标 行)
目标图像y=原y *(原图 行/目标 行)


双线性插值

A1 =20% * 上 + 80% *下
B1 = 30% 左边 + 70 *邮编
1、 最终点= A1 30% + A2 70%
2、 最终点= B1 30% + B2 70%
导入图片;图片的info信息,空白模板;xy.
import cv2
import numpy as np
img = cv2.imread (‘1.jpg’,0)
imgInfo = img.shape

height = imgInfo[0]
width = imgInfo[1]
dheight = int(height /2)
dwidth = int(width/2)

#c创建空白模板
det = np.zeros((dheight,dwidth,3),np.uint8) #到底是先宽还是先高

for i in range(0,dheight):
for j in range (0,dwidth):
inew = int(i*(height1.0/dheight) )
jnew = int(j
(width*1.0/dwidth))
det[i,j] = img[inew, jnew]

cv2.imshow(‘dst’,det)
cv2.waitKey(0)

图片剪切

dst = img[100:200,100:300]
cv2.imshow(‘imge’,dst)
cv2.waitKey(0)

图片的移位
##移位矩阵
mat = np.float32([[1,0,100],[0,1,200]])
dst =cv2.warpAffine(img, mat, (height,width)) #1 图像数据,移位矩阵,图片INFO信息
如何通过移位矩阵实现图像移位 拆分22 21
通过API实现


通过像素移动

图片镜像

图像的高度,宽度和深度信息
height = imgInfo[0]
width= imgInfo[1]
deep= imgInfo[2] 表示每个像素由几个颜色组成

实现了上下翻转,并中间加了一条红色的线

图片的仿射变换:位移,旋转,缩放

图片旋转

产生旋转矩阵 matRotate = cv2.getRotationMatrix2D(height0.5,width0.5, 45, 0.5) #1 中心点 2 旋转角度 3 缩放系数

一、cv2的学习 (图片的剪切,缩放,放射,旋转)相关推荐

  1. 微信小程序怎么实现 图片按住一角缩放、旋转、拖拽

    微信小程序怎么实现 图片按住一角缩放.旋转.拖拽 图片一角可以加个小图片,按住来操作 利用movable-view.movable-area 可以实现拖拽缩放.不好旋转 是不是可以利用canvas绘图 ...

  2. Android中实现图片平移、缩放、旋转同步进行

    转载请注明转自:noyet12的博客 博客原址:http://blog.csdn.net/u012975705/article/details/49797911 源码下载地址: (github)htt ...

  3. web手势库AlloyFinger运用( 控制CANVAS中图片移动、缩放、旋转) - 可编辑图片指定区域位置

    注: 苹果手机升级IOS14.1系统后,出现图片写入不了CANVAS画布问题 解决方法:alloy_paper.js 文件查找代码: this.img.crossOrigin = "Anon ...

  4. 使用C#进行图片转换格式,缩放,自动旋转,保留exif(转载)

    这几天心血来潮做了一个批量图片缩放,转换格式,并且可以根据exif的信息旋转图片,校正exif信息后保存的小程序.根据配置文件 指定需要的功能. 1 2 3 4 5 6 7 8 9 10 11 12 ...

  5. 23.Qt Quick QML-400行实现一个好看的图片浏览器-支持多个图片浏览、缩放、旋转、滑轮切换图片...

    之前我们已经学习了Image.Layout布局.MouseArea.Button.GroupBox.FileDialog等控件. 所以本章综合之前的每章的知识点,来做一个图片浏览器,笔者使用的Qt版本 ...

  6. mac下使用命令行工具sips实现单个或批量图片缩放、旋转、翻转和格式转换

    sips是mac下的一个命令行工具,可以实现单个批量图片裁剪.缩放.旋转.翻转和格式转换. 指定宽度为600像素,高度自适应缩放 sips -Z 600 test.jpg 批量指定宽度为600像素,并 ...

  7. OpenCasCade学习笔记(三):加载显示STEP格式图片,并实现平移、缩放和旋转操作

    OpenCasCade学习笔记(三):加载显示STEP格式图片,并实现平移.缩放和旋转操作 C3DWidget.h #pragma once#include <QtWidgets/QApplic ...

  8. Jetpack学习之——使用动画缩放图片

    Android动画和Transition系列文章 初识属性动画--使用Animator创建动画 再谈属性动画--介绍以及自定义Interpolator插值器 三谈属性动画--Keyframe以及Vie ...

  9. html中如何等比缩小图片,css如何将图片等比缩放

    css将图片等比缩放的方法:可以利用object-fit属性来实现,如[object-fit: cover;].object-fit属性指定元素的内容应该如何去适应指定容器的高度和宽度. 属性介绍: ...

最新文章

  1. ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course
  2. 中国未来技术学院盘点
  3. mysql 6.3 入门_Mysql 入门小练习
  4. 移植MT76x8 私有WIFI驱动V4.1.0.0到Openwrt 18.06所遇到的坑
  5. 工作134:custom组件
  6. 微内核和宏内核的区别(短小、精悍)
  7. python web服务器 apache_Windows下搭建Apache+Django+Python Web服务环境
  8. git 怎么还原历史版本_4. Git--修改/回退等操作
  9. dipole antenna simulation by HFSS
  10. IoT平台如何实现业务配置中心
  11. python 2.7.11 linux,Python-2.7.11+Django-1.9.4安装配置
  12. 什么是 “内存管理机制”?
  13. 计算机专业中英文,计算机专业词汇中英文对照
  14. homestead.yaml配置详解
  15. 移动广告聚合平台经验分享:芒果、果合、Adview、抓猫哪家好?
  16. h2ouve工具使用_NF8480M5 – BIOS设置
  17. 拆书帮第14期训练营——作业九:如何通过刻意练习来掌握临界知识
  18. 2019年肖秀荣命题人精讲精练
  19. Android第三方登录详解2
  20. AI耳机要想“复制”智能音箱的爆红,还要迈过哪些坎?

热门文章

  1. Python做游戏很难吗—来看看我做的多有意思~
  2. 2006年毕业论文范文库
  3. CVPR2018: Generative Image Inpainting with Contextual Attention 论文翻译、解读
  4. 机车车辆LED灯行业调研报告 - 市场现状分析与发展前景预测
  5. c语言整点报时,C语言编写的整点报时时钟.doc
  6. uniapp H5、app、小程序不同端之间跳转
  7. 多益网络2020年秋招笔试题
  8. 图数据库的易用性—GES与Flink的对接
  9. 广义表和二叉树的转换
  10. 计算机一级考试第一套题电子表格,2013年计算机一级考试试题(精简版):第一套...