计算机视觉学习week1

1.Pycharm配置opencv环境,3.4.1.15版本

2.了解库函数

       

import cv2
import numpy
#读取图像文件并打印
image = cv2.imread("opencv_logo.jpg")#读取文件中的图像
print(image.shape)#打印图像的长宽,和通道数

cv2.imshow("image",image)#打印图像
cv2.waitKey()#等待按键,防止图片一闪而过
import cv2
import numpy
#图像的彩色通道
image = cv2.imread("opencv_logo.jpg")
#提取bgr三张灰度图
cv2.imshow("blue", image[:, :, 0])
cv2.imshow("green", image[:, :, 1])
cv2.imshow("red", image[:, :, 2])

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#彩图转灰度
cv2.imshow("gray", gray)

cv2.waitKey()
import cv2

image = cv2.imread("opencv_logo.jpg")
#切割图像
crop = image[20:170, 40:210]#剪切竖列20-170,横行40-210

cv2.imshow("crop", crop)
cv2.waitKey()
import cv2
import numpy as np

image = np.zeros([300, 300, 3], dtype=np.uint8)#灰度数值类型——8位无符号整数

#画各种图
cv2.line(image, (100, 200), (200, 300), [255, 0, 0], 2)
cv2.rectangle(image, (100, 200), (200, 300), [255, 0, 0], 2)
cv2.circle(image, (150, 150), 50, [0, 0, 255], 2)
cv2.putText(image,"Hello", (100, 50), 0, 1, [255,255,255], 2, 1)

cv2.imshow("image",image)
cv2.waitKey()
import cv2
#滤波
image = cv2.imread("plane.jpg")

gauss = cv2.GaussianBlur(image, (5, 5), 0)#参数:源,卷积核大小,sigmaX(为零,即视内核大小决定)
median = cv2.medianBlur(image, 5)#内核为五个像素

cv2.imshow("image", image)
cv2.imshow("gauss", gauss)#效果:噪点减少,细节丢失
cv2.imshow("median", median)#效果:噪点更少

cv2.waitKey()
import cv2
#提取转角特征
image = cv2.imread("opencv_logo.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

corners = cv2.goodFeaturesToTrack(gray, 500, 0.1, 10)#获取图像中的特征点,最多500个,质量优于0.1, 之间距离大于10像素
for corner in corners:
    x, y = corner.ravel()
    cv2.circle(image,(x,y), 3, (255, 0, 0), -1)

cv2.imshow("corners", image)
cv2.waitKey()

上强度

import cv2
import numpy as np

# 模板匹配菱形
# 无法匹配大小不同的图像
image = cv2.imread("poker.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

template = gray[70:105, 235:265]  # 选取区域作为模板

match = cv2.matchTemplate(gray, template, cv2.TM_CCOEFF_NORMED)  # 选用标准相关匹配算法
# 将待检测图像和模板都标准化,再计算匹配度,保证不受光照等因素影响
location = np.where(match >= 0.9)

w, h = template.shape[0:2]
for p in zip(*location[::-1]):  # 不太理解
    x1, y1 = p[0], p[1]
    x2, y2 = x1 + w, y1 + h
    cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)

cv2.imshow("template", template)
cv2.imshow("image", image)
cv2.waitKey()
import cv2
import numpy as np

# 梯度算法
gray = cv2.imread("opencv_logo.jpg", cv2.IMREAD_GRAYSCALE)  # 直接读灰度图
laplacian = cv2.Laplacian(gray, cv2.CV_64F)  # 拉普拉斯算子
canny = cv2.Canny(gray, 50, 100)  # canny算法

cv2.imshow("gray", gray)
cv2.imshow("laplacian", laplacian)  # 图像明暗变化处变为黑色
cv2.imshow("canny", canny)  # 完美的边缘 “斯巴拉西”
cv2.waitKey()
import cv2
import numpy as np

# 对图像进行腐蚀和膨胀
gray = cv2.imread("opencv_logo.jpg", cv2.IMREAD_GRAYSCALE)

_, binary = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY_INV)  # 图像二值化
kernal = np.ones((5, 5), np.uint8)  # 五成五像素的正方形

erosion = cv2.erode(binary, kernal)  # 腐蚀
dilation = cv2.dilate(binary, kernal)  # 膨胀

cv2.imshow("binary", binary)
cv2.imshow("erosion", erosion)
cv2.imshow("dilation", dilation)
cv2.waitKey()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值