精华内容
下载资源
问答
  • def getmaxpixel(): #获取所有图像中最大像素值 rootdir = '/home/shaoyidu/Program/pythonCnn/baidu/dataset/train0' list = os.listdir(rootdir) h=0 w=0 for i in range(0,len(list)): path = os.path.join...
    见函数getmaxpixel()与setpic_pixel()
    
    
    #-*- coding:utf-8 -*-
    import pandas as pd
    import numpy as np
    import pdb
    from PIL import Image,ImageEnhance
    import os
    dic  = {}
    import os
    import shutil
    import numpy as np
    import pandas as pd
    from PIL import Image
    import os
    def getmaxpixel():   #获取所有图像中最大像素值
        rootdir = '/home/shaoyidu/Program/pythonCnn/baidu/dataset/train0'
        list = os.listdir(rootdir)
        h=0
        w=0
        for i in range(0,len(list)):
            path = os.path.join(rootdir,list[i])
            if os.path.isfile(path):
                img = Image.open(path)
                imgSize = img.size #图片的长和宽
                if(imgSize[0]>w):
                    w = imgSize[0]
                if (imgSize[1] > h):
                    h = imgSize[1]
        print (w,h)
        return w,h
    
    def setpic_pixel(maxw,maxh):  #缩放图片并填充
        imglst = os.listdir('/home/shaoyidu/Program/pythonCnn/baidu/dataset/train0')
    
        for name in imglst:
    
            # 打开一个jpg图像文件,注意路径要改成你自己的:
    
            im = Image.open('/home/shaoyidu/Program/pythonCnn/baidu/dataset/train0/%s' % name)
            #im = im.resize((1024,48),PIL.Image.ANTIALIAS)
            # 制作最大尺寸 1024*48 背景用白色填充
            newim = Image.new('RGB', (maxw, maxh), 'white')
            w, h = im.size
            scale= min(maxw/w,maxh/h)
            print(w,h)
            out = im.resize((int(w*scale),int(h*scale)))
            newim.paste(out,(0,0))
            #newim.show()
            newim.save('/home/dataset/train_max0/%s' % name)
            '''
            im = Image.open('E:/allcompetition/test_f/%s' % name)
            im.show()
            enhancer = ImageEnhance.Contrast(im)
            out=enhancer.enhance(3)
            out.save('./%s' % name)
            #brightness
            #time.sleep(1000)
            #print(w,h)
            #if w<h:
            #    f.write('%d %d %s\n' % (w,h,name))
            if (w,h) not in dic:
                dic[(w,h)] = [name,]
                if w < h:
        
            else:
                dic[(w,h)].append(name)
            '''
    
    
    
    w,h = getmaxpixel()
    setpic_pixel(w,h)
    #label2picture()

    展开全文
  • 获取图像的面积获取图像的轮廓面积获取白色像素点的面积 获取图像的轮廓面积 参考链接 作者:喳 小铭 链接:https://www.zhihu.com/question/400665344/answer/1276806076 来源:知乎 著作权归作者所有。商业转载请...

    在图像中:0是黑,255是白

    获取图像的轮廓面积

    参考链接

    作者:喳 小铭
    链接:https://www.zhihu.com/question/400665344/answer/1276806076
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    
    """
    矩
    图像的矩可以帮助我们计算图像的质心,面积
    cv2.moments()会将计算得到的矩以一个字典的形式返回。
    """
    img = cv2.imread(dataPath + 'j.png', 0)
    ret, thresh = cv2.threshold(img, 127, 255, 0)
    contours, hierarchy = cv2.findContours(thresh, 1, 2)
    cnt = contours[0]
    M = cv2.moments(cnt)
    print(M)  # {'m10': 16295.166666666666, 'm02': 2139434.833333333, 'nu20': 0.14816793811555762, 'm03': 153389761.15, 'nu12': 0.0006475903394347398, 'm01': 30024.833333333332, 'nu11': -0.06573717801941524, 'nu30': 0.01047213916167356, 'm21': 45301100.46666667, 'mu30': 38765.91563599929, 'mu02': 13277.718487945385, 'nu02': 0.07385701366114156, 'nu03': 0.0023967466246527977, 'm20': 652892.8333333333, 'mu03': 8872.311188548803, 'm11': 1142096.3333333333, 'm00': 424.0, 'm12': 80551411.9, 'mu12': 2397.259249293944, 'nu21': -0.006486127329685832, 'm30': 27178170.450000003, 'mu20': 26637.03924266249, 'mu21': -24010.439604086336, 'mu11': -11817.966915618395}
    # 计算重心
    cx = int(M['m10'] / M['m00'])
    cy = int(M['m01'] / M['m00'])
    """
    轮廓面积
    cv2.contourArea(), 也可以使用矩 M['m00']
    """
    area = cv2.contourArea(cnt)
    

    获取白色像素点的面积

    参考链接

    import cv2
    img = cv2.imread("01result1.bmp")############图片读取
    pictue_size=img.shape
    picture_height=pictue_size[0]
    picture_width=pictue_size[1]
    print(picture_height,picture_width)
    
    i = 0
    for a in range(picture_height):
        for b in range(picture_width):
            if img[a,b].all() > 0:
                i= i + 1
    print(i)
    
    展开全文
  •  • 获取图像的属性(信息)  •图像的 ROI()  • 图像通道的拆分及合并 • 图像融合 1.获取并修改图像像素 img = cv2.imread('longmao.jpg') #获取行:100,列:200的B、G、R顺序的像素值,当为灰度图时...

    前言

    目标
      • 获取像素值并修改
      • 获取图像的属性(信息)
      • 图像的 ROI()
      • 图像通道的拆分及合并

           • 图像融合

     

    1.获取并修改图像像素

    img = cv2.imread('longmao.jpg')
    #获取行:100,列:200的B、G、R顺序的像素值,当为灰度图时返回该点灰度值
    px = img[100,200]
    print(px)

    修改像素时,直接赋值即可

    px = [255,255,255]
    print(px)

    2.获取图像形状、像素数、数据类型

    img.shape,img.size,img.dtype

    3.图像ROI

    opencv-python很多操作很像numpy,按照array进行截取就行

    img = cv2.imread('longmao.jpg')
    new_img = img[100:200,200:300,:]
    cv2.imwrite('new_img.jpg',new_img)
    cv2.imshow('new',new_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    4.图像的拆分、合并

    img = cv2.imread('longmao.jpg')
    b = img[:,:,0]
    g = img[:,:,1]
    r = img[:,:,2]
    img_merge = cv2.merge((b,g,r))
    cv2.imshow('merged',img_merge)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    5.图像融合

    cv2.addWeighted(img1,weight1,img2,weight2,gamma)

    图像尺寸要一致,权重加起来要为1,gamma控制融合后的图像偏移 :dst = α · img1 + β · img2 + γ

     

    展开全文
  • 1.获取图像的像素,并修改指定位置的像素值 首先我们来了解以下像素和分辨率 的关系,参考下文:像素和图像分辨率的关系 import cv2 #读取图片 img = cv2.imread('D:\pythonb\wx01.jpg') test = img[180,142] #...

    1.获取图像的像素,并修改指定位置的像素值

    首先我们来了解以下像素和分辨率 的关系,参考下文:像素和图像分辨率的关系

    import cv2
     #读取图片
    img = cv2.imread('D:\pythonb\wx01.jpg')
    test = img[180,142]
    
     #获取像素值
    print(img.shape)    #获取图像的形状大小:(400,400,3)400行 400列 3通道
    print(test)         #获取行为50,列为182处的像素值
    
     #修改像素值
    img[180:220,142:160] = [250, 250, 250]    
    print(test)
    

    运行结果如下:

    (400,400,3)
    [94 107 151]
    [250 250 250]

    修改像素后的图片
    可以看到图像中180`220行、142·160列处的三通道像素值都变成了250,也就是白色;像素值越大,颜色越浅;像素值越小,颜色越深。

    2.获取BGR通道像素值

    法一:分别获取

    blue = img[179,142,0]
    print (blue)
    green = img[179,142,1]
    print (green)
    red = img[179,142,2]
    print (red)
    

    运行结果如下:

    83
    94
    132

    法二:一同获取

    print(img[179, 142])
    

    运行结果如下:

    [ 83 94 132]

    3.使用numpy获取图像像素值

    import cv2
    import numpy
    img = cv2.imread('D:\pythonb\wx01.jpg')
    
    #Numpy逐一读取图像某一处的像素
    blue = img.item(178, 200, 0)
    green = img.item(178,200, 1)
    red = img.item(178, 200, 2)
    print(blue)
    print(green)
    print(red)
    
    print(img[178,200])     #同时输出三通道像素值
    

    运行结果如下:

    183
    188
    249
    [ 183 188 249 ]

    4.使用numpy修改图像像素值

    import cv2
    import numpy
    img = cv2.imread('D:\pythonb\wx01.jpg')
    #修改78行,100列的元素
    img.itemset((78, 100, 0), 100)
    img.itemset((78, 100, 1), 100)
    img.itemset((78, 100, 2), 100)
    print(img[78,100])      #输出修改后78行,100列的图像的元素
    

    运行结果如下:

    [ 100 100 100 ]

    5. 裁剪图片

    之前学习的图片裁剪方法,是用python中的PIL库实现,例如:

    5.1 运用PIL裁剪图片

    #获取图像
    from PIL import Image
    im =Image.open('D:\pythonb\wx10.jpg')
    
    #显示原图
    im.show()
    
    #输出原图尺寸大小 
    print('原图尺寸大小为:',im.size)
     
    #转换成灰度图像
    new_im = im.convert('L')  
     
    #裁剪指定图像 大小:box(上,左,右,下)        
    box = (1000,3000,2000,4600)
    new_im1 =new_im.crop(box)
    
    #显示裁剪后的图像并保存
    new_im1.show()
    new_im1.save('D:\pythonb\CJ.jpg')
    print('裁剪后图像尺寸大小为:',new_im1.size)
    

    运行结果如下:

    原图尺寸大小为: (3456, 4608)
    裁剪后图像尺寸大小为: (1000, 1600)

    裁剪之前
    | 裁剪之后
    由此可见l利用PIL进行图像处理和基于opencv的处理方法是有一定区别的,稍后会整理出一篇关于PIL的图像处理的文章。

    5.2 基于opencv 裁剪图片

    import cv2
    import numpy as np
    
    img = cv2.imread('D:\pythonb\wx30.jpg')
    cv2.imshow("ROI", img)
    
    #定义裁剪区域
    face = img[50:200, 100:220]    #截取图像/PIL:new_im1 = im.crop(左,上,右,下)
    cv2.imshow("face", face)
    
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    上述代码参考博客:Python图像处理

    展开全文
  • 1、像素值操作 OpenCV读取图像后,将其作为numpy存储,所以大部分的图像计算都是numpy的工作 px = img[100,100] # 获取像素点(100,100)的三通道颜色值 blue = img[100,100,0] # 获取像素点(100,100)的...
  • 本文实例为大家分享了Python OpenCV图像像素点操作的具体代码,供大家参考,具体内容如下 0x01. 像素 有两种直接操作图片像素点的方法: 第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作...
  • 首先我们需要读入一幅图像,可以根据像素的行和列的坐标获取他的像素值。对 BGR 图像而言,返回值为 B,G,R 的值。对灰度图像而言,会返回他的灰度值(亮度 intensity): import cv2 import numpy as np img = ...
  • 双击鼠标左键,获取图像坐标,坐标点在图像中用绿色标注,并返回对应坐标的RGB ''' def on_EVENT_LBUTTONDOWN(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDBLCLK: print("coordinate:(%d,%d...
  • 在我们的生活过程中,如果遇到了想给图片换颜色的情况,首先想到的一定是PS,但是PS安装还是比较大的,...使用两个for循环,遍历所有的像素值更换为新的像素值。 #!/usr/bin/python from PIL import Image import sys
  • 图像矩阵的shape属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵行数,也就是图像的高(Y),第二个元组表示矩阵列数,也就是图像的宽(X),第三个元素是3,表示像素值由光的三原色组成。 import cv...
  • 如图所示,如何快速获取图像中这条横线的bounding box的,以及如何获取这条直线中所有黑色像素的数目呢? 解决方法 最简单的方法就是直接遍历图像中每个像素,判断每个像素是否为黑色,然后获取bounding box的...
  • 第一个元素表示矩阵行数,第二个元组表示矩阵列数,第三个元素是3,表示像素值由光的三原色组成,也就是rgb三通道。 顺便附上一段如何获取图像大小的代码: import cv2 fn="D:/crgb/p.jpg" #path if __name__ == '__...
  • python修改图像颜色

    2021-06-07 20:06:36
    环境: opencv-python 4.5.2.52 ...1.获取图像像素值 摘自:https://blog.csdn.net/m0_46413170/article/details/117001451 import cv2 def get_point(event, x, y, flags, param): # 鼠标单击事件
  • 方式1:通过CV2库直接查看图像信息 源码如下 import cv2 file_path = 'W:\PY\WDPY\piccc\dfgdd.jpg' # file_path = 'C:/Users/admin/...sp = img.shape # [高|宽|像素值由三种原色构成] print( sp ) 输出结果:
  • 获取图像的属性(信息) 图像的 ROI() 图像通道的拆分及合并 BGR转RGB 图像扩边(边界填充) 一、获取并修改像素值 注意: Numpy 是经过优化了的进行快速矩阵运算的软件包。所以我们不推荐逐个获取像素值并修改,...
  • Python+OpenCV图像处理之图像

    千次阅读 2019-06-27 11:17:00
    在灰度图中,每个像素都对应一个灰度(0~255,0黑、255白),我们将阈值函数 threshold() 应用于图像图像的灰度与阈值进行比较,从而实现二化处理,目的是滤除太大或太小值像素、消除噪声,从而从灰度图中...
  • 在ubuntu 中,用python实现显示图像,以及根据鼠标的位置获得rgb,hsv等的。 # coding: utf-8 # @Time :20-3-18 下午3:38 # @Author :LUAN XIN HUANG # @Modifer : # @FileName :show_img_get_mouse_value.py ...
  • 第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第四列的像素点就直接 im[3,3] 就可以获取到这个点的RGB。 第二种就是使用 OpenCV 提供的 Get1D、 Get2D 等函数。 推荐使用第...
  • 7/22python数字图像处理

    2020-07-22 22:05:41
    图像模板匹配OpenCV-python学习图像像素存储形式图像读取和写入cv2.imread()cv2.imshow()cv2.imwrite()图像像素获取和编辑像素值获取:图片性质ROI截取(Range of Interest)添加边界(padding)像素算术运算图像模板...
  • 我们知道,在自动化测试中,特别是端侧功能测试中,经常要对页面的元素的状态进行...下面,我写几个关于图像像素点判断,辅助检测控件状态变化的小方法。上代码: from PIL import Image,ImageChops import aircv as
  • 1. 获取并修改像素值 可以根据像素的行和列的坐标获取他的像素值。对 BGR 图像而言,返回值为 B,G,R 的值。 import cv2 img = cv2.imread("113_2018-11-28_16-30-49.jpg", cv2.IMREAD_COLOR) ...
  • b、size 获取图像像素数目,彩色图像返回行数*列数的。 c、dtype 获取图像的数据类型,一般返回uint8. 实例代码: import cv2 img = cv2.imread("img/test.jpg", cv2.IMREAD_UNCHANGED) #获取图像...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 184
精华内容 73
关键字:

python获取图像像素值

python 订阅