python-opencv 常用工具总结
生活随笔
收集整理的這篇文章主要介紹了
python-opencv 常用工具总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、核心函數解釋
1)OpenCV庫的引入:import cv2
OpenCV讀取的圖片,圖片數據的組織形式為bgr;
2) 讀取圖像:cv2.imread(arg1, arg2)
函數參數:arg1表示想要讀取的圖片所在的位置;arg2表示讀取模式;其中arg2 = 1表示讀取彩色 arg2 = 0表示灰度;
3) 展示圖片:cv2.imshow(arg1, img)
函數參數:arg1表示顯示出來的圖片窗口的名稱;?img表示需要展示的圖片;
4) 等待輸入:cv2.waitKey(n)
函數參數:n值表示等待用戶輸入需要的時間,單位時毫秒,n = 0圖片一直在顯示;
| 序號 | 功能 |
| 1 | opencv畫線 |
| 2 | 修改圖片像素大小 |
| 3 | 圖片局部裁剪 |
>> opencv畫線
定義方法def?LineAtext1中的內容可工具實際情況刪減,此處展示模式較為完整。
# -----------------------------open CV畫分割線--------------------------
import cv2
import sys
from PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QApplication, QMainWindowclass MainWindow(QWidget):def __init__(self):super().__init__()self.open_img()def open_img(self):num_1 = ['A', 'B', 'C', 'D', 'E', 'F']image1 = cv2.imread('D:/Users/xuyf2/Desktop/jier/left/cp1631759505img_right_NG.jpg', cv2.IMREAD_COLOR)image = self.LineAtext1(image1, 110, 130, 360, 80, 250, 90, num_1)cv2.namedWindow("image")cv2.imshow('image', image)cv2.waitKey(0) # 圖片一直顯示cv2.destroyAllWindows()# 分割線def LineAtext1(self, image, left_x, left_y, right_x, right_y, define_long, define_width, num):font = cv2.FONT_HERSHEY_SIMPLEXtext_size = 0.6text_color = (0, 0, 0)text_thin = 2line_color = (255, 0, 0)line_thin = 3# define_long = 250 #定義方框長度# define_width = 90 #定義方框寬度# image = cv2.imread(img_path)# B2cv2.line(image, (left_x, left_y), (left_x + define_long, left_y), line_color, line_thin)cv2.putText(image, num[0], (left_x + int(define_long / 2), left_y + int(define_width / 2)), font, text_size,text_color, text_thin)# B4cv2.line(image, (left_x, left_y + define_width), (left_x + define_long, left_y + define_width), line_color,line_thin)cv2.putText(image, num[1], (left_x + int(define_long / 2), left_y + 3 * int(define_width / 2)), font, text_size,text_color, text_thin)# B6cv2.line(image, (left_x, left_y + 2 * define_width), (left_x + define_long, left_y + 2 * define_width), line_color,line_thin)cv2.putText(image, num[2], (left_x + int(define_long / 2), left_y + 5 * int(define_width / 2)), font, text_size,text_color, text_thin)#cv2.line(image, (left_x, left_y + 3 * define_width), (left_x + define_long, left_y + 3 * define_width), line_color,line_thin)#cv2.line(image, (left_x + define_long, 0), (left_x + define_long, 480), line_color, line_thin)cv2.line(image, (left_x, 0), (left_x, 480), line_color, line_thin)cv2.line(image, (left_x + 2 * define_long, 0), (left_x + 2 * define_long, 480), line_color, line_thin)# B1cv2.line(image, (right_x, right_y), (right_x + define_long, right_y), line_color, line_thin)cv2.putText(image, num[3], (right_x + int(define_long / 2), right_y + int(define_width / 2)), font, text_size,text_color, text_thin)# B3cv2.line(image, (right_x, right_y + define_width), (right_x + define_long, right_y + define_width), line_color,line_thin)cv2.putText(image, num[4], (right_x + int(define_long / 2), right_y + 3 * int(define_width / 2)), font, text_size,text_color, text_thin)# B5cv2.line(image, (right_x, right_y + 2 * define_width), (right_x + define_long, right_y + 2 * define_width),line_color, line_thin)cv2.putText(image, num[5], (right_x + int(define_long / 2), right_y + 5 * int(define_width / 2)), font, text_size,text_color, text_thin)#cv2.line(image, (right_x, right_y + 3 * define_width), (right_x + define_long, right_y + 3 * define_width),line_color, line_thin)return imageif __name__ == '__main__':app = QApplication(sys.argv)mainWindow = MainWindow()sys.exit(app.exec_())
?>>opencv 修改圖片大小
# 修改圖像大小
import cv2
import time
cover_path = "D:/Users/xuyf2/Desktop/lego_jier/cp1622130030.jpg"
save_path= "D:/Users/xuyf2/Desktop/lego_jier/save_small_photo/"
im1 = cv2.imread(cover_path)
im2 = cv2.resize(im1,(640,480),) # 為圖片重新指定尺寸img_str = 'cp' + str(int(time.time()))
cv2.imwrite(save_path + '1' + img_str + ".jpg", im2) # 保存畫圖后圖片
總結
以上是生活随笔為你收集整理的python-opencv 常用工具总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 死精症是什么样
- 下一篇: 机器学习四剑客1——Numpy