当前位置:网站首页>Opencv learning notes II - basic image operations
Opencv learning notes II - basic image operations
2022-07-07 08:23:00 【I am a little rice】
1. POI Area : Region of interest
2. Edge fill
3. Numerical operation
import cv2
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
from PIL import Image
image1 = mpimg.imread('1.jpg')
image2 = mpimg.imread('2.jpg')
plt.imshow(image1)
plt.imshow(image2)
Image addition
image3 = image1+image2
plt.imshow(image3)
Image cropping
plt.imshow(image1[100:-100, 100:-100, :]);
Image zoom
fx and fy Represents the zoom factor
image4 = cv2.resize(image1, (0, 0), fx=3, fy=1)
plt.imshow(image4);
4. Image threshold
ret, dst = cv2.threshold(src, thresh, maxval, type)
- src: The input image , Only single channel images
- dst: Output chart
- thresh: threshold
- maxval: The value when the pixel value exceeds or is less than the threshold
- type: The type of binarization
- cv2.THRESH_BINARY Over threshold value maxval, Otherwise take 0
- cv2.THRESH_BINARY_INV THRESH_BINARY The reversal of
- cv2.THRESH_TRUNC Greater than the threshold set the threshold , The rest remains the same
- cv2.THRESH_TOZERO Greater than the threshold unchanged , The rest is set to 0
- cv2.THRESH_TOZERO_INV THRESH_TOZERO The reversal of
image1_gray = image1[:,:,0]
res, thresh1 = cv2.threshold(image1_gray, 127, 255, cv2.THRESH_BINARY)
res, thresh2 = cv2.threshold(image1_gray, 127, 255, cv2.THRESH_BINARY_INV)
res, thresh3 = cv2.threshold(image1_gray, 127, 255, cv2.THRESH_TRUNC)
res, thresh4 = cv2.threshold(image1_gray, 127, 255, cv2.THRESH_TOZERO)
res, thresh5 = cv2.threshold(image1_gray, 127, 255, cv2.THRESH_TOZERO_INV)
titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']
images = [image1_gray, thresh1, thresh2, thresh3, thresh4, thresh5]
for i in range(6):
plt.subplot(2,3,i+1)
plt.imshow(images[i], 'gray')
plt.title(titles[i])
plt.xticks([])
plt.yticks([])
plt.show()
边栏推荐
猜你喜欢
Automatic upgrading of database structure in rainbow
BiSeNet的特點
Hisense TV starts the developer mode
Analyzing the influence of robot science and technology development concept on Social Research
在Rainbond中实现数据库结构自动化升级
eBPF Cilium实战(1) - 基于团队的网络隔离
饥荒云服管理脚本
JS copy picture to clipboard read clipboard
Ebpf cilium practice (1) - team based network isolation
Leetcode medium question my schedule I
随机推荐
解读创客思维与数学课程的实际运用
Infix keyword infix expression and the use of generic extension function in kotlin
漏洞复现-easy_tornado
Using helm to install rainbow in various kubernetes
opencv学习笔记二——图像基本操作
Ebpf cilium practice (1) - team based network isolation
Splunk查询csv lookup table数据动态查询
机器人教育在动手实践中的真理
Analysis of maker education in innovative education system
Complete linear regression manually based on pytoch framework
Lua programming learning notes
发挥创客教育空间的广泛实用性
使用 Nocalhost 开发 Rainbond 上的微服务应用
It's too true. There's a reason why I haven't been rich
Battery and motor technology have received great attention, but electric control technology is rarely mentioned?
Leetcode simple question: find the K beauty value of a number
offer收割机:两个长字符串数字相加求和(经典面试算法题)
【Go ~ 0到1 】 第七天 获取时间戳,时间比较,时间格式转换,Sleep与定时器
opencv学习笔记四——膨胀/腐蚀/开运算/闭运算
Rainbow version 5.6 was released, adding a variety of installation methods and optimizing the topology operation experience