pythonopencv图像处理需要的图片_Python opencv中的图像处理,PythonOpencv,对于,图片

本文介绍了如何使用Python的OpenCV库进行简单的图像处理,通过一段25行的代码展示了如何对图片进行颜色叠加效果,实现透明处理。通过定义处理范围和颜色值,对指定区域的每个像素的RGB值进行操作,达到预期效果。
摘要由CSDN通过智能技术生成

Python Opencv中对于图片的处理

先看成效:

处理前:

b8ca8ebff99b81224132068bad54ab09.png

处理后:

bf845a21bfcc92c72e879f36bb2e6106.png

再来一张:

d37a6c2e2fd6d87fa8d0df6dd2a821df.png

OK,现在来瞧一瞧如何使用超级简单的方法实现这一处理:

首先,基本的导入模块:

import cv2

import numpy as np

下一步,自然是载入图片:

image = cv2.imread("01.jpg", cv2.IMREAD_COLOR)

然后把它显示出来:

cv2.imshow("Work", image)

cv2.waitKey(0)

cv2.destroyAllWindows()

咋一看,处理呢?别急,现在开始写.

def handle_image(img, size, color):

for x in range(size[0][0], size[1][0]):

for y in range(size[0][1], size[1][1]):

for rgb in range(3):

c = img.item(x, y, rgb)

c += color[rgb]

c = 0.5*c

img.itemset((x, y, rgb), c)

我们来分析一下这段代码:

第一行 def handle_image(img, size, color):

img 就是要处理的矩阵,也就是窗口

size也就是要进行透明处理的范围,是一个数组,结构:[[左上角横坐标,左上角纵坐标],[右下角横坐标,右下角纵坐标]],即[[x1,y1],[x2,y2]]

color自然就是有色玻璃的颜色了

第二行 for x in range(size[0][0], size[1][0]):

进行一个循环,从x1到x2

第三行 for y in range(size[0][1], size[1][1]):

一样的道理

第四行 for rgb in range(3):

通道的循环

自此,该循环已将size中的所有像素的RGB都遍历了一遍

接下来就很简单了,

先获得(x,y)这像素rgb的值(这里的rgb其实只为其中一个)

c = img.item(x, y, rgb)

将有色玻璃的对应的值与原颜色值相加

c += color[rgb]

颜色相加原则,再除以2

c = 0.5*c

然后把它写回去

img.itemset((x, y, rgb), c)

这样,就完成了>>>>>>>

来,放全部代码:

import cv2

import numpy as np

RED = (0, 0, 255)

GREEN = (0, 255, 0)

def handle_image(img, size, color):

for x in range(size[0][0], size[1][0]):

for y in range(size[0][1], size[1][1]):

for rgb in range(3):

c = img.item(x, y, rgb)

c += color[rgb]

c = 0.5*c

img.itemset((x, y, rgb), c)

# image = np.zeros([600, 600, 3])

# cv2.circle(image, (300, 300), 100, GREEN, 5)

image = cv2.imread("01.jpg", cv2.IMREAD_COLOR)

handle_image(image, ((100, 100), (500, 500)), (100, 145, 162))

cv2.imshow("Work", image)

cv2.waitKey(0)

cv2.destroyAllWindows()

代码中注释的两行说明…

对,只要是图像,都可以处理!

b3b5dfeec6701134ee783fe189aec822.png

07c728c72481bb85f4e8cb500bf39197.png

哈哈,数了数才25行代码,

嗯,人生苦短,我用python.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值