opencvimwrite(opencvimwrite函数用法)

本篇文章给大家谈谈opencvimwrite,以及opencvimwrite函数用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

cv2.rectangle()、cv2.putText()和cv2.imwrite()用法

OpenCV-Python 是旨在解决计算机视觉问题的Python绑定库。

cv2.rectangle() 方法用于在任何图像上绘制矩形。

参数:

image: 它是要在其上绘制矩形的图像。

start_point: 它是矩形的起始坐标。局渣桥坐标表示为两个值的元组,即(X坐标值,Y坐标值)。

end_point: 它是矩形的结束坐标。坐标表示为两个值桐猛的元组,即( X 坐标值 ÿ 坐标值)。

color: 它是要绘制的矩形的边界线的颜色。对于 BGR ,我们通过一个元组。例如:(255,0,0)为蓝色。

thickness: 它是矩形边框线的粗细 像素 。厚度 -1像素 将以指定的颜色填充矩形形状。

返回值: 它返回一个图像梁档。

cv2.putText() 方法用于在任何图像上绘制文本字符串。

参数:

image: 它是要在其上绘制文本的图像。

text: 要绘制的文本字符串。

org: 它是图像中文本字符串左下角的坐标。坐标表示为两个值的元组,即(X坐标值,Y坐标值)。

font: 它表示字体类型。一些字体类型是 FONT_HERSHEY_SIMPLEX,FONT_HERSHEY_PLAIN, 等

fontScale: 字体比例因子乘以font-specific基本大小。

color: 它是要绘制的文本字符串的颜色。对于 BGR ,我们通过一个元组。例如:(255,0,0)为蓝色。

thickness: 它是线的粗细 像素 。

lineType: 这是一个可选参数,它给出了要使用的行的类型。

bottomLeftOrigin: 这是一个可选参数。如果为true,则图像数据原点位于左下角。否则,它位于左上角。

返回值: 它返回一个图像。

示例:

[img]

opencv的img.flat的函数用法

Mat类:

是用于保存图像以及其他矩阵数据的数据结构。

图像载入函数imread():

Mat imread(const string filename, int flags=1);

filename表示图像载入的路径;

flags为载入标识。

flags=0 将图像转换为灰度再返回;

flags=1 将图像转换成彩色再返回;

flags=2 若载入图像的深度是16位或者32位,就返回对应的图像深度,否则,将图像转换为8位图像再返回。

flags=2|4 载入最真实无损的源图像

若flags不在枚举类型当中,flags0 返回一个三通道的彩色图像;flags=0 返回灰度图像;flags0 返回包含Alpha通道的加载图像。

图像显示函数imshow():

void imshow(const string winname, InputArray mat);

winname填写要显示的窗口标识名称;

mat填需要显示的图像。

输出图像到文件imwrite():

bool imwrite(const string filename, InputArray img, const vector params=vector());

第一个参数filename表示要写入的文件名

第二个参数img表示Mat类型的图像数据

通道分离split()函数;

void split(const Mat src, Mat* mvbegin);

void split(InputArray m, OutputArrayofArray mv);

第一个参数表示需要进行分离的多通道数组;

第二个参数表示函数 输出数组或输出的vector容器。

通道合并merge()函数:

void merge(const Mat* mv, size_t count, OutputArray dst)

void merge(InputArrayOfArray mv, OutputArray dst);

第一个参数mv表示需要被合并的输入矩阵或vector容器的阵列,mv参数中所有矩阵必须拥有一样的尺寸;

第二个参数count表示当mv为空白的C数组时,代表输入矩阵的个数,通常可以省略不写;

第三个参数dst表示输出矩阵,和mv拥有一样的尺寸和深度

Python与OpenCV图像简单操作

文章目录

OpenCV安装

1.读取图片

2.保存图片

3.截取部分图像

4.图片翻转

5.缩放图片

6.转换为灰度图像

7.在一个窗陪乱口中显示两张图片

8.绘图功能

OpenCV安装

打开命令行输入 pip install opencv-python(前提是有python环境)

1.读取图片

使用 cv2.imread() 函数,给出了几种读取图片路径的写法

import cv2#导入opencv包

#python中不需要声明变量

img1 = cv2.imread("D:/test/1.jpg")#绝对路径,推荐

img2 = cv2.imread("D:\\test\\2.jpg")#通常是两个斜线,单右斜线会被当成转义符

img3 = cv2.imread("3.jpeg")#相对路径,将图片放在py文件对应目录下

cv2.imshow("test1", img1)

cv2.imshow("test2", img2)

cv2.imshow("test3", img3)

cv2.waitKey(0)#没有这一句图片会一闪而过

##waitkey(delay=0),等待用户输入按键,返回该按键的值

2.保存图片

使用 cv2.write() 函数保存图片

import cv2# 导入OpenCV包

img=cv2.imread("D:/test/3.png",cv2.IMREAD_COLOR)

cv2.imshow("test",img)#OpenCV可以实现不同格式图片转换,支持jpg、bmp、png等图片格式相互无损转换

cv2.imwrite("D:/test/3.1.png",img)#将改变后的图像保存

cv2.imwrite("D:/段乱高test/3.2.bmp",img)

cv2.waitKey(0)

3.截取部分图像

import cv2

img = cv2.imread("D:\\test\\2.jpg")

frame = img[200:400,200:400] #截取部分图像,200-400行,200-400列

cv2.imshow("test",frame)#显示握尺截取后的图像

cv2.waitKey(0)

4.图片翻转

使用cv2.flip(img,flipcode)来进行图片翻转

flipcode控制图片翻转方向

import cv2

img=cv2.imread("D:/test/5.jpg",cv2.IMREAD_COLOR)

flipCode1=1#大于0左右翻转

flipCode2=0#等于0上下翻转

flipCode3=-1#小于0先上下翻转再左右翻转

img1 = cv2.flip(img, flipCode1)#filpCode控制图片翻转方向

img2 = cv2.flip(img, flipCode2)

img3 = cv2.flip(img, flipCode3)

cv2.imshow("test",img)

cv2.imshow("test1",img1)

cv2.imshow("test2",img2)

cv2.imshow("test3",img3)

cv2.waitKey(0)

5.缩放图片

cv2.resize(img,dsize,fx,fy),dsize和fx,fy都可以设置图片大小,不能同时为0

import cv2# 导入OpenCV包

img = cv2.imread("D:/test/2.jpg",cv2.IMREAD_COLOR)

img1 = cv2.resize(img, (700, 700))#设置输出图片的尺寸

img2 = cv2.resize(img, None, fx=0.7, fy=0.7)#None的位置本来是输出图片的尺寸,这里设置了缩放因子

#fx-水平轴上的比例因子,fy-垂直轴上的比例因子

cv2.imshow("test", img)

cv2.imshow("test1", img1)

cv2.imshow("test2", img2)

cv2.imwrite("D:/test/resize.jpg", img1)# 保存图像

cv2.waitKey(0)

6.转换为灰度图像

cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

cv2.COLOR_RGB2GRAY表示把RGB图像转为灰度图像,2前是转换前,2后是转换后

import cv2#导入opencv包

#python中不需要声明变量

img = cv2.imread("D:/test/1.jpg")#cv2.imread读进来的图片格式是BGR(W,H,C),而不是RGB

cv2.imshow("BGR", img)

#将图像转换为RGB格式

img1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)#因为opencv读取图片是按BGR读的,所以转换为RGB反而不像原图

cv2.imshow("RGB",img1)

#将图像转换为灰度图像

img2 = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)

cv2.imshow("GRAY",img2)

cv2.waitKey(0)

7.在一个窗口中显示两张图片

import cv2

import numpy as np

img = cv2.imread("D:/test/resize.jpg")

img2 = cv2.imread("D:/test/resize.jpg")

#imgs = np.hstack([img,img2])#在水平方向上平铺

imgs = np.vstack([img,img2])#在竖直方向上堆叠

cv2.imshow("mutil_pic", imgs)

cv2.waitKey(0)

8.绘图功能

import cv2

import numpy as np

img = 255*np.ones((350,512,3),np.uint8)#unit8:0~255

#ones()为创建一个元素均为一的矩阵

font = cv2.FONT_HERSHEY_DUPLEX

#font = cv2.FONT_HERSHEY_COMPLEX# 设置字体

#文本 # 图片对象、文本、 位置、 字体、字体大小、颜色、 字体粗细

cv2.putText(img, "happy day", (50,300), font, 0.8, (25, 25, 25), 2,)#颜色可以自己调整,范围为0-255

#线 #起点 终点 颜色 粗细

cv2.line(img, (50,310), (185,310), (0, 0,0),4)

#矩形 #左上顶点 右下顶点

cv2.rectangle(img, (80,8), (200,100), (0, 255,0),2)

#圆形 #圆心 半径 颜色 控制是否填充 -1表示填充

cv2.circle(img,(60,60),30,(0,0,213),1)

#椭圆 #中心点 长轴 短轴 偏转角度,起始角度,终止角度

cv2.ellipse(img,(100,300),(100,50),180,0,360,(20,213,79),1)

cv2.imshow("Draw", img)

cv2.waitKey(0)

1.np.vstack([img1,img2]) 当img1和img2图片矩阵维度相同时才能堆叠

2.除了imread,imwrite 函数没有返回值以外,flip,resize,cvtColor,vstack,hstack都有返回一个图片回来。

opencv中Mat数据怎么保存为JPG格式的图片

opencv中有将jpg文件读取为mat的衫绝搏imread函数,也有将mat数据存储为各类图像格式的imwrite函数。或祥详细的使用方法可以参宏纤考opencv的手册

opencv中为什么保存的图片和显示的图片不同?

应该是图像的深度不同一造成,先看辩键一下你的代码中各个环节是否统一了图像的深度CV_8SC1,也有可能是系统的看图软件对8bit深和灶友度的图像显示的有唤槐问题。

opencv中的cv2.imwrite()不报错,却保存不上图片

cv2.imwrite()函数不会创建新的此册文件夹,也不会报错。保存图片失败的原因可能有两森迹宏个:

1.保存路径不州颂存在,可以在cv2.imwrite()语句之前加一个检查路径的语句

2.保存路径有中文,这点很常见,也很容易忽视

opencv-python 缺口识别

一、cv函数

1、imread:读取图片

    imread(image_path, flag):

         images_path:图片路径,找不到不报错

        flag:

            1/cv2.IMREAD_COLOR:彩色图片,图片透明性会被忽略,默认参数

            0/cv2.IMREAD_GRAYSCALE:灰色图片

            -1/cv2.IMREAD_UNCHANGED:包括其锋袜消alpha通道

2、imwrite

    imwrite(img_path_name,img)

        img_path_name:保存的文件名

        img:文件对象

3、cvtColor

    cvtColor(img,code)

        img: 图像对象

        code:

                cv2.COLOR_RGB2GRAY: RGB转换到灰度模式

                cv2.COLOR_RGB2HSV: RGB转换到HSV模式(hue,saturation,Value)

4、matchTemplate

        matchTemplate(img_path, bg_path, cv2.TM_CCOEFF_NORMED)

            img_path:对比图片

    银知        bg_path:背景图片

            cv2.TM_CCOEFF_NORMED

```

# encoding=utf8

import cv2

import numpyas np

def show(name):

cv2.imshow('Show', name)

cv2.waitKey(0)

cv2.destroyAllWindows()

def main():

otemp ='./images/tb.png'

    oblk ='./images/bg.jpg'

    target = cv2.imread(otemp, 0)

template = cv2.imread(oblk, 0)# 读取到两个图片,进行灰值化处理

   好岩 w, h = target.shape[::-1]

aa = target.shape

print(aa)

print(w, h)

temp ='./images/temp.jpg'

    targ ='./images/targ.jpg'

    cv2.imwrite(temp, template)

cv2.imwrite(targ, target)# 处理后进行保存

    target = cv2.imread(targ)

target = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)# 转化到灰度

    target =abs(255 - target)# 返回绝对值

    cv2.imwrite(targ, target)# 重新写入

    target = cv2.imread(targ)

template = cv2.imread(temp)

result = cv2.matchTemplate(target, template, cv2.TM_CCOEFF_NORMED)# 进行匹配

    x, y = np.unravel_index(result.argmax(), result.shape)# 通过np转化为数值,就是坐标

    print(y, x)

# 展示圈出来的区域

    cv2.rectangle(template, (y, x), (y + w, x + h), (7, 249, 151), 2)

show(template)

return y, x

if __name__ =='__main__':

a, b = main()

```

关于opencvimwrite和opencvimwrite函数用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表