我是靠谱客的博主 长情豌豆,最近开发中收集的这篇文章主要介绍python读取单个文件,opencv画矩形框1 python读取单个文件2 opencv在图片上画矩形框3 python读取文件,opencv在图片上画矩形框参考博客,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python读取文件,opencv在图片上画矩形框

  • 1 python读取单个文件
  • 2 opencv在图片上画矩形框
    • 2.1 图片操作
    • 2.2 绘制矩形框
  • 3 python读取文件,opencv在图片上画矩形框
  • 参考博客

1 python读取单个文件

附代码,中间的部分注释代码可以不用管,留着只是方便自己以后查看。

with open('plane.txt', 'r') as f: # 打开当前文件夹下面的plane.txt文件,文件打开操作区别,可以参考这个对文件读写进行了解https://www.cnblogs.com/zyber/p/9578240.html
    lines = f.readlines()
    splitlines = [x.strip().split(' ')  for x in lines]# strip()是删除,split()是分割。
    #有关strip()和split()函数的用法,参见
    #https://www.cnblogs.com/yyxayz/p/4034299.html
    #https://www.jb51.net/article/104453.htm
    
    #print(splitlines)
    #print(len(splitlines))
    splitlines = splitlines[2:] #此时splitlines是矩阵,矩阵基本操作,这句意思是跳过文件前两行不进行处理。这里主要区分数组np.array和列表list区别。
    for splitline in splitlines:
        #print(splitline)
        #print(len(splitline))
        #print(float(splitline[1]))
        if(float(splitline[1]) >= 0.5):
            #print(float(splitline[1]))
            print(splitline)
            i=i+1
            splitline = splitline[2:]#这是1维的,不是矩阵,对应前面矩阵,这操作表示跳过前两个值不处理。
            print(splitline)
            
            x, y, x1, y1 = splitline#这四个值都是字符串类型str,python没有字符类型,单个字符的类型被称作只含有一个字符的字符串类型
            x, y, x1, y1 = float(x), float(y), float(x1), float(y1)#这里需要注意,不能直接用int()转换,原因是int()只能包含数字,不能包含.之类的,否则报错,具体错误参考https://blog.csdn.net/qq_41891803/article/details/81321323
            #print(x, y, x1, y2)
            draw_1=cv2.rectangle(image, (int(x),int(y)), (int(x1),int(y1)), (0,255,0), 2)
            
#print(i)

2 opencv在图片上画矩形框

2.1 图片操作

附代码

import cv2
# 在当前文件夹下读取图片
image = cv2.imread("P0170.png")
GrayImage=cv2.cvtColor(image ,cv2.COLOR_BGR2GRAY)

# 对GrayImage进行处理的程序

cv2.imwrite("vertical_flip.jpg", GrayImage)#将处理过的图片保存到当前文件夹
# 
cv2.namedWindow("draw_0",2) # 2的意思是可以调整显示框的大小,1不能调整,不需要调整框的大小可以不用这句话
cv2.imshow("draw_0", GrayImage)#显示图片
cv2.waitKey(0)
cv2.destroyWindow("draw_0")

2.2 绘制矩形框

就是利用cv2.rectangle函数

draw_1=cv2.rectangle(image, (x,y), (x1,y1), (0,255,0), 2)
# image表示处理的图片
# (x,y)和(x1,y1)分别表示矩形框的左上和右下两个点
# (0,255,0)表示框的颜色
# 2表示框的粗细

3 python读取文件,opencv在图片上画矩形框

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 26 12:16:24 2020

@author: cxz_w
"""
import cv2
image = cv2.imread("P0170.png")
GrayImage=cv2.cvtColor(image ,cv2.COLOR_BGR2GRAY)

with open('plane.txt', 'r') as f:
    lines = f.readlines()
    splitlines = [x.strip().split(' ')  for x in lines]
    for splitline in splitlines:
        if(float(splitline[1]) >= 0.5):
            print(splitline)
            splitline = splitline[2:]
            print(splitline)
            
            x, y, x1, y1 = splitline
            x, y, x1, y1 = float(x), float(y), float(x1), float(y1)
            #print(x, y, x1, y2)
            draw_1=cv2.rectangle(image, (int(x),int(y)), (int(x1),int(y1)), (0,255,0), 2)
cv2.imwrite("vertical_flip.jpg", draw_1)
cv2.namedWindow("draw_0",2) 
cv2.imshow("draw_0", draw_1) #显示画过矩形框的图片
cv2.waitKey(0)
cv2.destroyWindow("draw_0")

P0170.png
在这里插入图片描述
plane.txt

在这里插入图片描述
vertical_flip.jpg在这里插入图片描述
至此,问题解决。

参考博客

https://blog.csdn.net/weixin_38145317/article/details/89497616

最后

以上就是长情豌豆为你收集整理的python读取单个文件,opencv画矩形框1 python读取单个文件2 opencv在图片上画矩形框3 python读取文件,opencv在图片上画矩形框参考博客的全部内容,希望文章能够帮你解决python读取单个文件,opencv画矩形框1 python读取单个文件2 opencv在图片上画矩形框3 python读取文件,opencv在图片上画矩形框参考博客所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部