当前位置:网站首页>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()
边栏推荐
- Use of any superclass and generic extension function in kotlin
- Practice of combining rook CEPH and rainbow, a cloud native storage solution
- Bisenet features
- Bayes' law
- opencv学习笔记三——图像平滑/去噪处理
- Ebpf cilium practice (1) - team based network isolation
- 拓维信息使用 Rainbond 的云原生落地实践
- Four items that should be included in the management system of integral mall
- Rainbow 5.7.1 supports docking with multiple public clouds and clusters for abnormal alarms
- 【雅思口语】安娜口语学习记录 Part3
猜你喜欢
Give full play to the wide practicality of maker education space
eBPF Cilium实战(1) - 基于团队的网络隔离
Improve the delivery efficiency of enterprise products (1) -- one click installation and upgrade of enterprise applications
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
Use of JMeter
【雅思口语】安娜口语学习记录 Part2
Quick analysis of Intranet penetration helps the foreign trade management industry cope with a variety of challenges
Caractéristiques de bisenet
Xcit learning notes
[quick start of Digital IC Verification] 14. Basic syntax of SystemVerilog learning 1 (array, queue, structure, enumeration, string... Including practical exercises)
随机推荐
Practice of implementing cloud native Devops based on rainbow library app
Open3d ISS key points
Rainbow combines neuvector to practice container safety management
Pytoch (VI) -- model tuning tricks
【雅思口语】安娜口语学习记录 Part3
Standard function let and generic extension function in kotlin
The largest 3 same digits in the string of leetcode simple question
Rainbond 5.6 版本发布,增加多种安装方式,优化拓扑图操作体验
eBPF Cilium实战(2) - 底层网络可观测性
buureservewp(2)
Domain specific language / DSL in kotlin
数据中台落地实施之法
Qinglong panel - today's headlines
Qinglong panel -- Huahua reading
Qinglong panel -- finishing usable scripts
Blob object introduction
Detailed explanation of apply, also, let, run functions and principle analysis of internal source code in kotlin
Myabtis_ Plus
Register of assembly language by Wang Shuang
[untitled]