用Python读取图片并对图片进行常规处理

以下截图中的opencv读取的格式应该是BGR,个人疏忽!
一、用Python读取图片:
1、第一种简便方法:

import cv2        #opencv读取的格式是BGR,,
import cv2 as cv
img_cat = cv.imread("C:/Users/xiaoyan/opencv-picture/cat.jpg")#路径不要有空格或者中文
cv.imshow('cat',img_cat)
cv2.waitKey(0)    
cv2.destroyAllWindows()

在这里插入图片描述
2、使用函数读取图片(对于多次需要打印图片而言是比较简便的,往下看大家就可以感受到了):

import cv2        #opencv读取的格式是BGR,
import cv2 as cv
def cv_show(name,img):
	cv2.imshow(name, img)
	cv2.waitKey(0)    
	cv2.destroyAllWindows()
img = cv2.imread('C:/Users/xiaoyan/opencv-picture/cat.jpg')
cv_show('img',img)#调用函数

在这里插入图片描述
备注:要注意图片的格式,是.jpg还是.png,否则会报错,找不到图片,图片的路径也不要用中文或者有空格的,防止出错
二、对图片进行灰度处理:

import cv2        #opencv读取的格式是BGR,
import cv2 as cv
img_cat = cv.imread("C:/Users/xiaoyan/opencv-picture/cat.jpg", cv2.IMREAD_GRAYSCALE)#转换成灰度图
cv.imshow('cat',img_cat)
cv2.waitKey(0)    
cv2.destroyAllWindows()

在这里插入图片描述
三、较常规的两种二值化处理:
1.二值化处理的简介:
1)二值图像不等同于灰度图。
2)二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像。
3)二值图像的灰度等级只有两种,也就是说,图像中的任何像素点的灰度值均为0或者255,分别代表黑色和白色。
4)进行形态学处理(腐蚀和膨胀操作)拿到的图像数据必须是二值图像。
2.- cv2.THRESH_BINARY_INV 二值法,THRESH_BINARY的反转(黑白反转)

import cv2        #opencv读取的格式是BGR,
import cv2 as cv
import numpy as np

def cv_show(name,img):
	cv2.imshow(name, img)
	cv2.waitKey(0)    
	cv2.destroyAllWindows()
	
# 读取一个模板图像
img = cv2.imread('C:/Users/xiaoyan/opencv-picture/12.png')
cv_show('img',img)
img1 = cv2.threshold(img, 10, 255, cv2.THRESH_BINARY_INV)[1]
cv_show('img',img1)

res = np.hstack((img,img1))#横向结合图片,同时打印出来
cv_show('together',res)

在这里插入图片描述
在这里,我们可以清楚的看到,用函数来读取一张图片是比较简便的

四、图片的颜色空间转换:

#彩色图像转为灰度图像
img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) 
#灰度图像转为彩色图像
img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)
# cv2.COLOR_X2Y,其中X,Y = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS
发布了10 篇原创文章 · 获赞 13 · 访问量 2625

猜你喜欢

转载自blog.csdn.net/weixin_45870610/article/details/104881729
今日推荐