Home >Backend Development >Python Tutorial >The basics of python image processing and the introductory functions of OpenCV

The basics of python image processing and the introductory functions of OpenCV

不言
不言Original
2018-09-08 17:28:143488browse

This article brings you the basics of Python image processing and the introductory functions of OpenCV. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

1. Basic knowledge of images

Images are composed of pixels, that is, small squares in the image. These small squares have a clear position and Color values ​​are assigned, and the color and position of these small squares determine how the image appears. Pixel is the smallest unit in an image. Each bitmap image contains a certain number of pixels, which determine the size of the image on the screen.

The basics of python image processing and the introductory functions of OpenCV

#Images usually include binary images, grayscale images and color images.


The basics of python image processing and the introductory functions of OpenCV


##1. Binary image Binary image Any point in is either black or white, either white (pixel is 255) or black (pixel is 0). The process of converting a grayscale image into a binary image is often implemented by sequential traversal judgment. If the pixels >= 127, it is set to 255, otherwise it is set to 0.


The basics of python image processing and the introductory functions of OpenCV

2. Grayscale image In addition to black and white, grayscale images also have gray, which combines gray The degree is divided into 256 different colors, and the image looks clearer. Converting a color image into a grayscale image is the most basic preprocessing operation for image processing, which usually includes the following methods:
(1) Floating point algorithm: Gray=R*0.3 G*0.59 B*0.11
( 2) Integer method: Gray=(R*30 G*59 B*11)/100
(3) Shift method: Gray=(R*28 G*151 B*77)>>8;
(4) Average method: Gray=(R G B)/3; (This program uses algorithm)
(5) Only take green: Gray=G;
(6) Weighted average algorithm: According to light The brightness characteristics of R, G, and B are uniformly replaced with Gray to form a new color RGB (Gray, Gray, Gray). Use it to replace the original RGB (R, G, B) to create a grayscale image. Change the RGB values ​​of the pixel matrix to convert the color image into a grayscale image.


The basics of python image processing and the introductory functions of OpenCV3. Color image

Color image is an RGB image. RGB represents the three primary colors of red, green and blue. All colors in the computer They are all composed of three primary colors in different proportions, that is, three-color channels.


The basics of python image processing and the introductory functions of OpenCV

2. OpenCV reads and writes images

This article mainly uses Python2.7 and OpenCV To explain, first call "pip install opencv-python" to install the OpenCV library, as shown in the figure below:


The basics of python image processing and the introductory functions of OpenCV1. Read in the image

OpenCV reads images mainly by calling the following functions: img = cv2.imread(file name,[,parameter])
Parameter (1) cv2.IMREAD_UNCHANGED (image immutable)

Parameter (2) cv2.IMREAD_GRAYSCALE (grayscale image)

Parameter (3) cv2.IMREAD_COLOR (read color image)
Parameter (4) cv2.COLOR_BGR2RGB (image channel BGR converted to RGB)


2. Display image

The display image calling function is as follows: cv2.imshow( Window name, image name)

3. Window wait

The calling function is as follows: cv2.waitKey(delay)
The keyboard binding function has one parameter, indicating the number of milliseconds to wait. It will wait for a specific number of milliseconds to see if there is input from the keyboard, and the return value is an ASCII value. If its parameter is 0, it means waiting for keyboard input indefinitely; parameter >0 means waiting for delay milliseconds; parameter


4. Delete all windows

Call the function as follows: cv2.destroyAllWindows() Delete all windows
cv2.destroyWindows() Delete the specified window


5. Write the picture

Call the function as follows:retval = cv2.imwrite(file address, file name )

The code below reads in the image and displays and saves it.

# -*- 
coding:utf-8 -*-import cv2
#读取图片
img = cv2.imread("test.jpg")
#显示图像
cv2.imshow("Demo", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图像
cv2.imwrite("testyxz.jpg", img)

The output result is shown in the figure below, and an image named "testyxz.jpg" is saved in the folder.


The basics of python image processing and the introductory functions of OpenCV

If there is no watiKey(0) function in the code, the running result will be as shown below:

The basics of python image processing and the introductory functions of OpenCV

同时
可以对代码进行升级,如下所示:

#无限期等待输入
k=cv2.waitKey(0)
#如果输入ESC退出
if k==27:
    cv2.destroyAllWindows()

三.OpenCV像素处理

1.读取像素
灰度图像直接返回灰度值,彩色图像则返回B、G、R三个分量。注意OpenCV读取图像是BGR存储显示,需要转换为RGB再进行图像处理。

灰度图像:返回值 = 图像(位置参数)
 eg: test=img[88,42]  
 彩色图像:返回值 = 图像[位置元素, 0 | 1 | 2 ] 获取BGR三个通道像素
 eg: blue=img[88,142,0] green=img[88,142,1] red=img[88,142,2]

2.修改图像
修改图像如果是灰度图像则直接赋值新像素即可,彩色图像依次给三个值赋值即可。

灰度图像:
 img[88,142] = 255
 彩色图像:
 img[88,142, 0] = 255
 img[88,142, 1] = 255
 img[88,142, 2] = 255
 彩色图像:方法二
 img[88,142] = [255, 255, 255]

下面代码是获取像素及修改的操作。

# -*- coding:utf-8 -*-import cv2
#读取图片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)
test = img[88,142]print test
img[88,142] = [255, 255, 255]print test
#分别获取BGR通道像素
blue = img[88,142,0]print blue
green = img[88,142,1]print green
red = img[88,142,2]print red
#显示图像
cv2.imshow("Demo", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图像
cv2.imwrite("testyxz.jpg", img)

输出结果如下所示:
[158 107  64]
[255 255 255]
255
255
255

下面代码是将行为100到200、列150到250的像素区域设置为白色。

# -*- coding:utf-8 -*-import cv2
#读取图片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)
#该区域设置为白色
img[100:200, 150:250] = [255,255,255]
#显示图像
cv2.imshow("Demo", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图像
cv2.imwrite("testyxz.jpg", img)

运行结果如下图所示:

The basics of python image processing and the introductory functions of OpenCV

相关推荐:

Python编程中使用Pillow来处理图像的基础教程

Python零基础入门之八lambda的表达式和filter、map内置函数

Python基于opencv的图像压缩算法实例分析

The above is the detailed content of The basics of python image processing and the introductory functions of OpenCV. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn