Python之OpenCV图像处理需要注意的几点

首先展示这段代码,同时附加了我当时学习的查询到的相关知识点,具体如下:

# -*- coding: utf-8 -*-
import cv2

# # cv2.IMREAD_UNCHANGED : 加载图像,包括它的Alpha通道。
img = cv2.imread(r'D:\ABC\apple.jpg', cv2.IMREAD_UNCHANGED)
print('img.shape:', img.shape)
logo = cv2.imread(r'D:\ABC\apple.jpg', cv2.IMREAD_UNCHANGED)
logo = cv2.resize(logo, (20, 20))
print('logo.shape:', logo.shape)
butterfly = cv2.imread('d:/ABC/butterfly.jpg', cv2.IMREAD_UNCHANGED)
butterfly = cv2.resize(butterfly, (20, 20))
print('butterfly.shape:', butterfly.shape)

cv2.imshow('src', img)
cv2.moveWindow('src', 0, 0)

# read color values at position y, x
y = 100
x = 50
(b, g, r) = img[y, x]
# print color values to screen
print('bgr:', b, g, r)

# 先行后列
# img[y:y+height,x:width]
img[100:100 + logo.shape[0], 300:300 + logo.shape[1]] = logo[:, :, 0:3]  # 两张图片的shape不一样
img[300:300 + logo.shape[1], 100:100 + logo.shape[0]] = butterfly[:, :, 0:3]

font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, text='col=width=X0,row=height-Y0', org=(0, 0), fontFace=font, fontScale=0.5, color=(0, 255, 0),
            thickness=2, bottomLeftOrigin=False)  # text,
cv2.putText(img, text='col=width=X10,row=height-Y30', org=(10, 30), fontFace=font, fontScale=0.5, color=(0, 255, 0),
            thickness=2)  # text,
cv2.putText(img, text='col=width=X100,row=height-Y300', org=(100, 300), fontFace=font, fontScale=0.5, color=(0, 255, 0),
            thickness=2)  # text,
cv2.putText(img, text='col=width-X300,row=height-Y100', org=(300, 100), fontFace=font, fontScale=0.5, color=(0, 255, 0),
            thickness=2)  # text,

cv2.imshow('img+logo', img)
cv2.imwrite('img_logo.jpg', img)
cv2.moveWindow('img+logo', x=img.shape[0], y=0)
cv2.waitKey(0)

# cv2的相关知识点:
# cv2.IMREAD_COLOR : 默认使用该种标识。加载一张彩色图片,忽视它的透明度。
# cv2.IMREAD_GRAYSCALE : 加载一张灰度图。
# cv2.IMREAD_UNCHANGED : 加载图像,包括它的Alpha通道。
# 关于img.shape[0]、[1]、[2]
# img.shape[0]:图像的垂直尺寸(高度)
# img.shape[1]:图像的水平尺寸(宽度)
# img.shape[2]:图像的通道数
#
# 在矩阵中,[0]就表示行数,[1]则表示列数。

需要注意的几个问题:
第一个问题是:导入import cv2。点击链接可查询
,我对该链接简明几点:
1.下载numpy 和 opencv-python是必不可少的,需要注意自己电脑Python的环境,如果你用win+R打开管理员命令窗口运行输入python得到如图所示(每个人的不一定相同),其中64 bit就是你们的python版本是64位的。其它照做应该问题不大。**64 bit 就是你们的python版本是64位的**
第二个问题是:cv2.imread(path,1) 如果参数path的路径不对,则会报错:AttributeError: ‘NoneType’ object has no attribute ‘shape’。那么路径问题该如何解决呢?最简单的方式就是找出它的绝对路径,这里需要注意的是:r’D:\ABC\apple.jpg’ 中apple是我的文件名,在你输入绝对路径时需要加***.jpg***(如下代码所示)。

img = cv2.imread(r'D:\ABC\apple.jpg', cv2.IMREAD_UNCHANGED)
print('img.shape:', img.shape)

当然还有另一种方式:相对路径。你的程序放的目录下如果有图片a.jpg 就可以直接用./a.jpg,如果没有,就要写绝对路径 d:/xxx/a.jpg.
我在学习这部分知识时,遇到的问题就这么多啦,希望对你有帮助哟,觉得不错的话,就点赞收藏叭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值