IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> opencv学习笔记及复习(三)图片取反及用数组自定义图片,cv定时器 -> 正文阅读

[人工智能]opencv学习笔记及复习(三)图片取反及用数组自定义图片,cv定时器

一、

image.shape 图片形状 为 [h, w, c] 高, 宽, 通道

img.shape

图片取反思路:遍历图片,每一个像素都被255减,代码如下

    image = cv.imread('img.jpg')    #读取图片
    print(image.shape)              #查看图片形状
    hight = image.shape[0]          #提取图片的高度
    width = image.shape[1]          #提取图片的宽度
    channels = image.shape[2]       #提取图片的通道数量
    print("height : %s,width : %s,channels : %s"%(hight, width, channels))    # %s打印各个变量
    for row in range(hight):            #循环每个像素,像素很多,CPU反应慢"""
        for col in range(width):
            for c in  range(channels):
                pv = image[row, col, c]        #使用PV保存
                image[row, col, c] = 255-pv    #取反
    cv.imshow("pixels_demo", image)            #显示

这是一个很好的思路,但是这么做的话,取反几千张图片的时候CPU反应会很慢,所有opencv提供了一个取反的API,直接把图片放入即可,也可以添加mask(这里不举例了)

 dst = cv.bitwise_not(image)
    cv.imshow("pixels_demo", dst)

二、使用np创建图片,代码如下:

  img = np.zeros([400, 400, 3], np.uint8)  #创建高400 宽400 3通道,数据类型为 np.uint8图片       
    img[:, :, 0] = np.ones([400, 400])*255     #给高400,宽400 通道0赋值255       
    cv.imshow("new image", img)               #显示

注意:在cv中三通道排序为BGR,在plt中为RGB,请看演示(红色为plt所画的,蓝色为cv所显示的)

?

三、cv定时器:

cv.getTickCount()
t1 = cv.getTickCount()  #获取到目前为止的cpu时钟的总数,相当于程序运行到这的时间
creat_image()
t2 = cv.getTickCount()  #t2程序运行到这的时间
time = (t2-t1)/cv.getTickFrequency()
 四、全部代码
#创建空白图像,定义数组,图片取反

import cv2 as cv
import numpy as np        #numpy为科学计数,数组,矩阵,计算等专用库

#定义宽高以及通道数目函数
def access_pixels(image):
    print(image.shape)
    hight = image.shape[0]
    width = image.shape[1]
    channels = image.shape[2]
    print("height : %s,width : %s,channels : %s"%(hight, width, channels))    # %s打印变量
    for row in range(hight):            #循环每个像素,像素很多,CPU反应慢"""
        for col in range(width):
            for c in  range(channels):
                pv = image[row, col, c]
                image[row, col, c] = 255-pv    #取反
    cv.imshow("pixels_demo", image)

def inverse(image):                #此函数功能和access_pixels一样,都是取反
    dst = cv.bitwise_not(image)
    cv.imshow("pixels_demo", dst)


def creat_image():
    """""
    img = np.zeros([400, 400, 3], np.uint8)           #创建(使用np 中的 zeros 或者 ones 来初始化)一张图片(数组)   多通道
    img[:, :, 0] = np.ones([400, 400])*255           #BGR  012分别对应通道  对一个通道赋值的语法
    cv.imshow("new image", img)
    
    img = np.zeros([400, 400, 1], np.uint8)         #创建单通道图片
    img[:, :, 0] = np.ones([400, 400])*50           #只能是通道0,50这个数值可修改    
     cv.imshow("new image", img)  
    #或者上面三句改为img = np.ones([400, 400, 1], np.uint8)  
                 #img = img * 50 
    
    cv.imwrite("D:/newpiture.png", img)
    """""
    m3 = np.array([[1, 2, 3], [4, 5, 6]], np.uint8)       #array定义了2行3列数组,可以用fill填充  不过最好使用ones与zeros定义数组
    m3.fill(9)
    print(m3)

    m1 = np.ones ([3, 3], np.float32)           #定义浮点型数组, 可定多种数据类型  np.ones[宽, 高, 通道]
    m1.fill(128.388)                         #fill 为填充给数组数据
    print(m1)

    m2 = m1.reshape([1, 9])
    print(m2)

img = cv.imread('1.jpg')
cv.imshow('img', img)
t1 = cv.getTickCount()  #获取到目前为止的cpu时钟的总数,相当于程序运行到这的时间
creat_image()
t2 = cv.getTickCount()  #t2程序运行到这的时间
time = (t2-t1)/cv.getTickFrequency()
print("time : %s  ms"%(time*1000))
cv.waitKey(0)

cv.destroyAllWindows()

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:00:00  更:2022-01-08 14:02:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 22:27:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码