使用python opencv基本函数处理图像

import cv2
#cv版本
print('OpenCV version:', cv2.__version__)
import matplotlib.pyplot as plt
path = 'img/'
file_name = 'sven-hornburg-TAVB-2C6uyE-unsplash.jpeg'
#加载
img = cv2.imread(path + file_name)
print(img.shape) # h w c ,高,宽,通道数。坐标原点在左上角

#位于图像矩阵表示的第 1968 行和第 2968 列交叉点的像素的 R、G、B 通道的强度
B, G, R = img[1968][2968]
print(R,G,B)


file_name = 'hans-ripa-kKR_KmRHaVw-unsplash.jpeg'
img = cv2.imread(path + file_name)
#cv 默认是GBR,现在改成RGB
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
#选择图像的矩阵表示中位于从 2196 到 2895 范围内的行和从 3340 到 3929 包括在内的范围内的列的交点处的像素子矩阵
crop_img = RGB_img[2196:2895, 3340:3929]
plt.imshow(crop_img)
plt.show()

file_name = 'fabian-medrano-6cVF-qE0NF4-unsplash.jpeg'
img = cv2.imread(path + file_name)
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
#按原高宽比缩放到宽位720
h, w, c = RGB_img.shape
new_width = 720
k = float(w) / h
print('原始高宽比:',k)
dim = (new_width, int(new_width / k))
resized_RGB_img = cv2.resize(RGB_img, dim, interpolation = cv2.INTER_AREA)
print(resized_RGB_img.shape)
#存储图像
path = ''
file_name = 'imge.jpg'
cv2.imwrite(path + file_name,  cv2.cvtColor(resized_RGB_img, cv2.COLOR_RGB2BGR))
import os
#查看压缩后文件大小
print(os.path.getsize(path+file_name))
#将压缩图像的通道 B 强度提高 13%。 强度不能超过255
for i in range(540):
    for j in range(720):
        resized_RGB_img[i,j,2]=int(resized_RGB_img[i,j,2]*1.13)
        if resized_RGB_img[i,j,2] >255:
            resized_RGB_img[i,j,2]=255
print(resized_RGB_img[286,367])


# 旋转 ,负数顺时针,正数相反,
h, w, c = RGB_img.shape
center = (w // 2, h // 2)
#第三个参数调整缩放
M = cv2.getRotationMatrix2D(center, -45, 0.7)
rotated_RGB_img = cv2.warpAffine(RGB_img, M, (w, h))
plt.imshow(rotated_RGB_img)
plt.show()

#生成灰度图像
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray_image, cmap='gray')
plt.show()

#生成二值图像
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray_image, cmap='gray')
plt.show()
#自适应阀值二值化
th3 = cv2.adaptiveThreshold(gray_image,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)
plt.imshow(th3, cmap='gray')
plt.show()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

фора 快跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值