其他
手把手教你用Python给小姐姐美个颜
导读:本文将着重介绍彩色图像的处理及彩色图像和灰度图像相互转换的相关内容。
作者:方圆圆
来源:大数据DT(ID:hzdashuju)
dst=cv2.cvtColor(src, code )
src:输入图像即要进行颜色空间变换的原图像,可以是Mat类。 code:转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片,后面会详细讲述。
程序3-5 彩色图像转灰度图像示例: color2gray.py
# -*- coding: UTF-8 -*-
import numpy as np
import cv2
#定义main()函数
def main():
img = cv2.imread('1.jpg')
img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
#从彩色图像转化成灰度图像
cv2.imshow('img2.bmp ', img2)
cv2.waitKey(0)
if __name__ == '__main__':
main()
[,mv]=cv2.split (src)
dst=cv2.merge([,dst] )
程序3-6 彩色图像通道分离示例: colorsplit.py
# -*- coding: UTF-8 -*-
import numpy as np
import cv2
#定义main()函数
def main():
img = cv2.imread('1.jpg')
img2 = cv2.cvtColor(img,cv2.COLOR_BRG2RGB)
r,g,b = cv2.split(img2) #img分离成三个单通道的图像
cv2.imshow("Red", r)
cv2.imshow("Green", g)
cv2.imshow("Blue", b)
cv2.waitKey(0)
if __name__ == '__main__':
main()
彩色图像转灰度。 图像阈值化处理,即像素值高于某阈值的像素赋值为255,反之为0。
ret, dst = cv2.threshold(src, thresh, maxval, type);
src:输入图,只能输入单通道图像,通常来说为灰度图。 dst:输出图。 thresh:阈值。 maxval:当像素值超过了阈值(或者小于阈值,根据type来决定)时所赋予的值。 type:二值化操作的类型,包含5种类型,即cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH_TOZERO和cv2.THRESH_TOZERO_INV。
程序3-7 彩色图像二值化示例: colorthreshold.py
# -*- coding: UTF-8 -*-
import numpy as np
import cv2
#定义main()函数
def main():
img = cv2.imread('1.jpg',0)
thresh1,dst =cv2.threshold(img,127,255,cv2.THRESH_BINARY)
#图像二值化
cv2.imshow("dst", dst)
cv2.waitKey(0)
if __name__ == '__main__':
main()
程序3-8 遍历彩色图像示例: color1.py
# -*- coding: UTF-8 -*-
import numpy as np
import cv2
#定义main()函数
def main():
img = cv2.imread('1.jpg')
height,width,n = img.shape #得到图片的宽高和维度
img2 = img.copy() #复制一个跟img相同的新图片
#宽高两个维度遍历图片
for i in range(height):
for j in range(width):
img2[i, j][0] = 0 #将第一个通道内的元素重新赋值
cv2.imshow('img2.jpg', img2)
cv2.waitKey(0)
if __name__ == '__main__':
main()
imread读取图像的时候直接设置参数为0,彩色图像自动被读成灰度图像。 调用cvtColor()函数,参数设置为cv2.COLOR_BGR2GRAY。 调用split()函数,可以将一幅彩色图像分离成3个单通道的灰度图像。
程序3-9 增加图像通道示例: gray2color1.py
# -*- coding: UTF-8 -*-
import numpy as np
import cv2
#定义main()函数
def main():
img = cv2.imread('gray1.jpg')
gray = np.zeros((512, 512, 3), np.uint8) # 生成一个空彩色图像
height,width,n = img.shape
#图像像素级遍历
for i in range(height):
for j in range(width):
gray[i, j][0] = img[i, j][0]
gray[i, j][1] = 0
gray[i, j][2] = 0
cv2.imshow('gray.jpg', gray)
cv2.waitKey(0)
=if __name__ == '__main__':
main()
程序3-10 伪彩色图像技术示例:
gray2color2.py
# -*- coding: UTF-8 -*-
import numpy as np
import cv2
#定义main()函数
def main():
img = cv2.imread('gray1.jpg')
im_color = cv2.applyColorMap(img, cv2.COLORMAP_JET) #色度图上色
cv2.imshow("im_color.jpg", im_color)
cv2.waitKey(0)
if __name__ == '__main__':
main()
在大数据DT(ID:hzdashuju)后台对话框回复美颜,可获取本文源代码。
更多精彩👇