AIR

Opencv——Python

首先说一下Opencv是什么:
Opencv是一个用图像处理、分析、机器视觉方面的开源数据库,是免费的。

我现在是刚开始学习opencv,而我现在所学习的语言是python语言,在遇到许多问题的时候百度,发现很多案例基本都是用c++写的,而我自己所学的c++没有学很好,所以造成许多需要慢慢探索、慢慢解决的问题。现在我把自己遇到的问题列出来供以后参考。

1.python的程序识别不了中文:
通常python程序开头都会写注释 #--coding:utf-8 -- ,但是你可能运行的时候会发现识别不了中文,输出的中文会变成乱码,这是要将这个注释改成 #--coding:cp936 -- 这样就行了,而用opencv调取图片时,如果图片文件名是中文,也有可能识别不了,改成这样同样可以解决问题。
2.图片调取
代码:

1
2
3
4
5
6
7
8
9
#-*-coding:cp936 -*-
import cv2

img=cv2.imread("F:\\易烊千玺 .jpg")
cv2.namedWindow("Image")
cv2.imshow("Image",img)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:
在这里插入图片描述
2.灰度化处理图片。
代码:

1
2
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("gray_image",gray)

承接上一个代码,这样处理图片就会变为灰度图像
3.对图像进行灰度变换。
先把像素变成一个二维数组,再用函数进行处理
代码:

1
2
3
4
5
6
7
8
#对灰度图像进行y=-x+255
g=copy.deepcopy(gray)
rows=img.shape[0]
cols=img.shape[1]
for i in range(rows):
for j in range(cols):
g[i][j]=255-g[i][j]
cv2.imshow("g_image",g)

4.三色道直方图。
代码:

1
2
3
4
5
6
7
8
color=('b','g','r')
def image_hist(image):
for i,col in enumerate(color):
hist=cv2.calcHist([image],[i],None,[256],[0,256])
plt.plot(hist,color=col)
plt.title("RGB")
plt.xlim([0,256])
plt.show()

运行结果:
在这里插入图片描述
这就是三色道直方图。
5.灰度直方图。
代码:

1
2
plt.hist(gray.ravel(),255,[0,256])
plt.show()

在这里插入图片描述
6.opencv中的createTrackbar函数。
代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#-*-coding:utf-8 -*-
#使用opencv中的creatTrackbar函数来调节一些参数观察图像变化
import cv2
import numpy as np

# 添加新窗口
#读入原始图像
cv2.namedWindow('image')
filename = 'F:\\jackson8.jpg'
img=cv2.imread(filename)

def turn(c):
num=cv2.getTrackbarPos("num","image")
ret,thresh= cv2.threshold(img,num,255,cv2.THRESH_BINARY)
cv2.imshow('image',thresh)

cv2.createTrackbar('num','image', 0,255,turn) # 创建滑块

turn(0)
cv2.waitKey(0)
cv2.destroyAllWindows()

 Comments


Blog content follows the Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License

Use Material X as theme , total visits times .
载入天数...载入时分秒...