精华内容
下载资源
问答
  • Python+OpenCV实时图像处理

    万次阅读 多人点赞 2020-01-04 23:09:35
    初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试有一定帮助。

    目录

    1、导入库文件

    2、设计GUI

    3、调用摄像头

    4、实时图像处理

    4.1、阈值二值化

    4.2、边缘检测

    4.3、轮廓检测

    4.4、高斯滤波

    4.5、色彩转换

    4.6、调节对比度

    5、退出系统


    初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试有一定帮助。

    1、导入库文件

    这里主要使用PySimpleGUI、cv2和numpy库文件,PySimpleGUI库文件实现GUI可视化,cv2库文件是Python的OpenCV接口文件,numpy库文件实现数值的转换和运算,均可通过pip导入。

    import PySimpleGUI as sg  #pip install pysimplegui
    import cv2  #pip install opencv-python
    import numpy as np #pip install numpy

    2、设计GUI

    基于PySimpleGUI库文件实现GUI设计,本项目界面设计较为简单,设计800X400尺寸大小的框图,浅绿色背景,主要由摄像头界面区域和控制按钮区域两部分组成。效果如下所示:

    GUI代码如下所示:

        #背景色
        sg.theme('LightGreen')
    
        #定义窗口布局
        layout = [
          [sg.Image(filename='', key='image')],
          [sg.Radio('None', 'Radio', True, size=(10, 1))],
          [sg.Radio('threshold', 'Radio', size=(10, 1), key='thresh'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(40, 15), key='thresh_slider')],
          [sg.Radio('canny', 'Radio', size=(10, 1), key='canny'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(20, 15), key='canny_slider_a'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(20, 15), key='canny_slider_b')],
          [sg.Radio('contour', 'Radio', size=(10, 1), key='contour'),
           sg.Slider((0, 255), 128, 1, orientation='h', size=(20, 15), key='contour_slider'),
           sg.Slider((0, 255), 80, 1, orientation='h', size=(20, 15), key='base_slider')],
          [sg.Radio('blur', 'Radio', size=(10, 1), key='blur'),
           sg.Slider((1, 11), 1, 1, orientation='h', size=(40, 15), key='blur_slider')],
          [sg.Radio('hue', 'Radio', size=(10, 1), key='hue'),
           sg.Slider((0, 225), 0, 1, orientation='h', size=(40, 15), key='hue_slider')],
          [sg.Radio('enhance', 'Radio', size=(10, 1), key='enhance'),
           sg.Slider((1, 255), 128, 1, orientation='h', size=(40, 15), key='enhance_slider')],
          [sg.Button('Exit', size=(10, 1))]
        ]
    
        #窗口设计
        window = sg.Window('OpenCV实时图像处理',
                   layout,
                   location=(800, 400),
                   finalize=True)

    3、调用摄像头

    打开电脑内置摄像头,将数据显示在GUI界面上,效果如下所示:

    代码如下所示:

        #打开内置摄像头
        cap = cv2.VideoCapture(0)
        while True:
            event, values = window.read(timeout=0, timeout_key='timeout')
    
            #实时读取图像
            ret, frame = cap.read()
    
            #GUI实时更新
            imgbytes = cv2.imencode('.png', frame)[1].tobytes()
            window['image'].update(data=imgbytes)
    
        window.close()

    4、实时图像处理

    4.1、阈值二值化

    进行阈值二值化操作,大于阈值values['thresh_slider']的,使用255表示,小于阈值values['thresh_slider']的,使用0表示,效果如下所示:

     代码如下所示:

    if values['thresh']:
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2LAB)[:, :, 0]
        frame = cv2.threshold(frame, values['thresh_slider'], 255, cv2.THRESH_BINARY)[1]

    4.2、边缘检测

    进行边缘检测,values['canny_slider_a']表示最小阈值,values['canny_slider_b']表示最大阈值,效果如下所示:

    代码如下所示:

    if values['canny']:
        frame = cv2.Canny(frame, values['canny_slider_a'], values['canny_slider_b'])

    4.3、轮廓检测

    轮廓检测是形状分析和物体检测和识别的有用工具,连接所有连续点(沿着边界)的曲线,具有相同的颜色或强度,效果如下所示:

     代码如下所示:

    if values['contour']:
        hue = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        hue = cv2.GaussianBlur(hue, (21, 21), 1)
        hue = cv2.inRange(hue, np.array([values['contour_slider'], values['base_slider'], 40]),
                          np.array([values['contour_slider'] + 30, 255, 220]))
        cnts= cv2.findContours(hue, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0]
        cv2.drawContours(frame, cnts, -1, (0, 0, 255), 2)
    

    4.4、高斯滤波

    进行高斯滤波,(21, 21)表示高斯矩阵的长与宽都是21,标准差取values['blur_slider'],效果如下所示:

     代码如下所示:

    if values['blur']:
        frame = cv2.GaussianBlur(frame, (21, 21), values['blur_slider'])
    

    4.5、色彩转换

    色彩空间的转化,HSV转换为BGR,效果如下所示:

     代码如下所示:

    if values['hue']:
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        frame[:, :, 0] += int(values['hue_slider'])
        frame = cv2.cvtColor(frame, cv2.COLOR_HSV2BGR)

    4.6、调节对比度

    增强对比度,使图像中的细节看起来更加清晰,效果如下所示:

      代码如下所示:

    if values['enhance']:
        enh_val = values['enhance_slider'] / 40
        clahe = cv2.createCLAHE(clipLimit=enh_val, tileGridSize=(8, 8))
        lab = cv2.cvtColor(frame, cv2.COLOR_BGR2LAB)
        lab[:, :, 0] = clahe.apply(lab[:, :, 0])
        frame = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)
    

    5、退出系统

    直接break即可跳出循环。

    if event == 'Exit' or event is None:
        break

    拓展学习:基于Python的人工智能美颜系统 

    请关注公众号,回复关键字:OpenCV实时图像处理,获取项目资源。

    展开全文
  • 数字图像处理期末测试

    千次阅读 2019-01-06 00:01:25
    创建以YUVtoJPEG为名称的M文件,读取CIF格式的YUV文件mobile_cif_300f.yuv的前60帧,并逐一以jpg格式保存各视频帧至当前目录下,视频帧帧号命名相对应的jpg图片。...第21-30帧,对视频帧混入高斯噪声,再作图像维...
    创建以YUVtoJPEG为名称的M文件,读取CIF格式的YUV文件mobile_cif_300f.yuv的前60帧,并逐一以jpg格式保存各视频帧至当前目录下,视频帧帧号命名相对应的jpg图片。保存的jpg图片满足以下条件: 
    第1-10帧,视频帧缩小1倍后,利用双线性内插法放大回原尺寸; 
    第11-20帧,对视频帧混入椒盐噪声,再作中值滤波; 
    第21-30帧,对视频帧混入高斯噪声,再作图像维纳滤波复原;
    第31-40帧,对视频帧作直方图均衡化;
    第41-50帧,对视频帧作Sobel边缘检测,将边缘点像素值增大为原值的1.2倍;
    第51-60帧,将视频帧的DCT变换系数取值前30%置为0,并重建视频帧;
    计算第1-60帧处理后视频帧与原始视频帧在Y通道上的PSNR值,并显示出PSNR值随帧号的变化曲线。
    注:上述所有处理均在Y通道,UV通道不作处理。
    
    %YUVtoJPEG.m
    clc;clear;
    %
    [Y,U,V] = ReadMultiFrames('mobile_cif_300f.yuv','cif',[0,60]);
    len = size(Y,3);
    psnr = [];
    for ii = 1:len
        Yc = Y(:,:,ii);
        Uc = U(:,:,ii);
        Vc = V(:,:,ii);
        if ii<=10
            Yd = fun1(Yc);
        elseif ii<=20
            Yd = fun2(Yc);
        elseif ii<=30
            Yd = fun3(Yc);
        elseif ii<=40
            Yd = fun4(Yc);
        elseif ii<=50
            Yd = fun5(Yc);
        else
            Yd = fun6(Yc);
        end
        tmp = PSNR(Yc,Yd);
        psnr = [psnr,tmp];
        im_rgb = yuv2rgb(Yd,Uc,Vc);
        imwrite(uint8(im_rgb),[num2str(ii),'.jpg']);
    end
    plot(psnr);
        
    function Yd = fun1(Yc)
    
    w = fspecial('average',[5,5]);
    Yc = imfilter(Yc,w);
    Yc = Yc(1:2:end,1:2:end);
    
    Yd = imresize(Yc,2,'bilinear');
    
    end
    function Yd = fun2(Yc)
    
    Yc = uint8(Yc);
    J = imnoise(Yc,'salt & pepper',0.05);
    B = ordfilt2(J,13,ones(5,5));
    Yd = double(B);
    
    end
    function Yd = fun3(Yc)
    
    Yc = mat2gray(Yc);
    J = imnoise(Yc,'gaussian',0,0.05);
    B = wiener2(J,[5 5]);
    Yd = double(255*B);
    
    end
    function Yd = fun4(Yc)
    
    Yc = uint8(Yc);
    Yd = histeq(Yc);
    Yd = double(Yd);
    
    end
    function Yd = fun5(Yc)
    
    BW = edge(Yc,'sobel');
    Yc(BW(:)) = Yc(BW(:))*1.2;
    Yd = Yc;
    
    end
    function Yd = fun6(Yc)
    
    d = dct2(Yc);
    [tmp,idx] = sort(d(:),'descend');
    idx1 = idx(1:round(length(idx)*0.3));
    d(idx1) = 0;
    Yd = idct2(d);
    
    end
    function r = PSNR(x1,x2)
    
    x1 = double(x1);
    x2 = double(x2);
    
    mes = x1-x2;
    
    r = 10 * log10(255^2 / mean(mes(:).^2));
    
    end
    function im_rgb = yuv2rgb(Yd,Uc,Vc)
    
    Uc = imresize(Uc,2);
    Vc = imresize(Vc,2);
    
    R = Yd + 1.4075*(Vc-128);
    G = Yd - 0.3455*(Uc-128) - 0.7169*(Vc-128);
    B = Yd + 1.7790*(Uc-128);
    
    im_rgb = cat(3,R,G,B);
    im_rgb(im_rgb>255) = 255;
    im_rgb(im_rgb<0) = 0;
    
    end

      

    function [Y,U,V] = ReadMultiFrames(yuvfilename,format,init2last)
    %该函数用于将yuv格式的视频连续多帧分别读入到三维数组Y,U,V之中
    %yuv视频的采样格式为4:2:0
    %输入参数:
    %      yuvfilename  ---- 视频yuv文件路径名
    %      format       ---- 视频格式(格式名or分辨率[rows,cols])
    %      init2last    ----  读取的视频帧的范围[初始帧序号,终止帧序号]
    %输出参数:
    %         Y         ---- 亮度,三维数组,第三维为帧序号,前两维是单帧的行和列
    %        U,V        ---- 色差,三维数组,第三维为帧序号,前两维是单帧的行和列
    %调用示范:
    %  [Y,U,V] = ReadMultiFrames('.\videoname.yuv','cif',[100,101]);
    %  [Y,U,V] = ReadMultiFrames('.\videoname.yuv',[288,352],[100,101]);
    close all;
    if ischar(format)
        format = lower(format);
        switch format
            case 'sub_qcif'
                cols = 128; rows = 96;
            case 'qcif'
                cols = 176; rows = 144;
            case 'cif'
                cols = 352; rows = 288;
            case 'sif'
                cols = 352; rows = 240;
            case '4cif'
                cols = 704; rows = 576;
            otherwise
                error('no format!');
        end
    elseif isequal(size(format),[1,2])||isequal(size(format),[2,1])
        cols = format(2);rows = format(1);
    else
        error('第二参数输入有误!');
    end
    
    
    point = fopen(yuvfilename,'r');
    if point == -1
        error('打开文件失败!');
    end
    
    order_num = init2last(1);
    frames_num = init2last(2) - order_num + 1;
    k = 0;
    Y = zeros(rows,cols,frames_num);
    U = zeros(rows/2,cols/2,frames_num);
    V = U;
    
    offset = order_num*(rows*cols + rows*cols/2);
    status = fseek(point,offset,'bof');
    pro = fread(point,1,'uchar');
    if (isempty(pro)&&feof(point)) || status ~=0
        error('读取位置定位失败!');
    end
    fseek(point,-1,'cof');
    
    for ii = 1:frames_num
        k = k + 1;
        pro = fread(point,1,'uchar');
        if feof(point)&&isempty(pro)
            disp('读取帧数范围已超过yuv视频总帧数!');
            Y = Y(:,:,1:k-1);
            U = U(:,:,1:k-1);
            V = V(:,:,1:k-1);
            break;
        end
        fseek(point,-1,'cof');
        temp = fread(point,[cols,rows],'uchar');
        Y(:,:,ii) = temp';
        temp = fread(point,[cols/2,rows/2],'uchar');
        U(:,:,ii) = temp';
        temp = fread(point,[cols/2,rows/2],'uchar');
        V(:,:,ii) = temp';
    end
    
    fclose(point);
    
    end
    
    

     

    展开全文
  • 图像处理经典图片Lena背后的故事

    千次阅读 2017-07-12 12:46:27
    下面这张图片估计很多人都非常熟悉,是的,图像处理领域的标准图Lena,记得之前看到过这张图的原图,突然有兴致,看看这张图片背后的故事。   原图如下: 最开始看到这张原图也是有点吃惊,原来司空见惯的...

    下面这张图片估计很多人都非常熟悉,是的,图像处理领域的标准图Lena,记得之前看到过这张图的原图,突然有兴致,看看这张图片背后的故事。

    lena

     

    原图如下:

    p32605371-2

    最开始看到这张原图也是有点吃惊,原来司空见惯的Lenna头像图竟然是这张图的一小部分,那么这样经典的图片是怎么来的呢?

    Lenna/Lena是谁?


    从comp.compression FAQ中, 我们知道Lenna/Lena是一张数字化了的1972年12月份的《花花公子》折页。Lenna这个单词是在《花花公子》里的拼法,Lena是她名字的瑞典语拼法。(在英语中,为了正确发音,Lena有时被拼做Lenna。)最后的关于Lena Soderberg (ne Sjooblom)的报道说她现在居住在她的本国瑞典,有着幸福的婚姻并是三个孩子的妈妈,在liquor monopoly州有一份工作。1988年,她被某个瑞典计算机相关杂志采访,因为她的照片而发生的一切令她很高兴。这是她第一次得知她的照片在计算机领域被使用。

    为何要使用Lenna图像?

    David C. Munson. 在“A Note on Lena” 中给出了两条理由:首先,Lenna图像包含了各种细节、平滑区域、阴影和纹理,这些对测试各种图像处理算法很有用。它是一副很好的测试图像!第二,Lena图像里是一个很迷人的女子。所以不必奇怪图像处理领域里的人(大部分为男性)被一副迷人的图像吸引。

    谁制作了Lenna图像?

    在1999年10月29日,我收到一封来自Chuck McNanis的email,里面告诉我们这个曾经扫描了Lenna图像的“不知名的科研人员”是William K. Pratt博士。下面是email:

    我在图像处理研究所的图像处理实验室作为一个系统程序员工作了5年('78-'83),这个实验室发布了Lenna图像和其他一些被人们经常引用做“The baboon image”的图像(包括Manril)。这个“不知名的科研人员”是William K. Pratt博士,现在在Sun Microsystems。他当时正在写一本关于图像处理的书,他需要几张标准图像。For a long time the folded up centerfold that had been the basis for that image was in the file cabinet at the lab. I went back in 1997 to visit and the lab has undergone many changes and the original image files were nowhere to be found. The original distribution format was 1600BPI 9-track tape with each color plane stored separately.

    --Chuck McManis (USC Class of '83)

    你想看原始的Lenna图像么?

    标准的数字Lena图像只是原始图像的脸和露肩特写。最近Chuck Rosenberg获得了原始的《花花公子》杂志的图像,并把它放在网上。下面是相关的一组图片。

    200804261209199804109200804261209199824046

    据说1997年第五十届IS&T,邀請她参加,她的反应是“那么多年了,大家一定看的很腻吧”有人甚至把 Lena 称为 “The First Lady of Internet”。200804261209199915015200804261209199942015

    ★emouse 思·睿博客文章★ 原创文章转载请注明:http://emouse.cnblogs.com
    展开全文
  • PIL(Pillow)模块对图片进行简单操作...PIL(Python Imaging Library)库,Python平台的图像处理标准库,但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL fork而来的库。 安装方式(homebrew),在terminal输入 br

    PIL(Pillow)模块对图片进行简单操作以及matplotlib绘制图像直方图

    环境:MacOS + Python2.7

    1. 模块介绍

    • PIL(Pillow)
      PIL(Python Imaging Library)库,Python平台的图像处理标准库,但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL fork而来的库。
      安装方式(homebrew),在terminal输入
    brew install Homebrew/science/pillow
    #根据brew提示输入下面两行
    mkdir -p /Users/Lychee/Library/Python/2.7/lib/python/site-packages
    echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/Lychee/Library/Python/2.7/lib/python/site-packages/homebrew.pth

    在python环境测试,无报错则成功

    from PIL import Image

    2. 对图片的基本操作

    • 图片打开与显示
      有两种方法:
      1)利用操作系统自带图片浏览器打开

      
      from PIL import Image
      img = Image.open('./my_pictures/img.jpg')
      img.show()

      这里写图片描述

      2) 结合matplotlib绘制图片

          from PIL import Image
          import matplotlib.pyplot as plt
          img = Image.open('./my_pictures/img.jpg')
          plt.figure("flower")
          plt.imshow(img)
          plt.show()

      注意:在运行这段代码时可能会报错:

      File “/usr/local/lib/python2.7/site-packages/PIL/Image.py”, line 709, in tostring
      raise NotImplementedError(“tostring() has been removed. ”
      NotImplementedError: tostring() has been removed. Please call tobytes() instead.

      是由于更新后的PIL中tostring()已经被舍弃,解决方式是直接打开出错的代码:Image.py,可以找到报错位置
      这里写图片描述
      将这段代码修改为:
      这里写图片描述
      然后保存即可。
      再次运行上面的代码段,显示结果为:
      这里写图片描述
      这样显示的好处在于可以自定义名称,绘制坐标系等等。

    • 提取图片直方图
      提取直方图的思路是:统计图像中像素点为某个值的个数,RGB彩色图像的提取就是将R\G\B三种颜色分别的0-255像素统计出来,然后绘制直方图。
      对图像做的处理是:现将图像的R\G\B分离,然后将图像矩阵转换为一维(flatten函数)矩阵,接下来再开始统计。

    # -*- coding: utf-8 -*-
    
    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    
    src = Image.open('./my_pictures/img.jpg')
    r,g,b = src.split() #分离R\G\B
    
    plt.figure("flowerHist")
    #要对图像求直方图,就需要先把图像矩阵进行flatten操作,使之变为一维数组,然后再进行统计
    #分别提取R\G\B统计值,叠加绘图
    ar = np.array(r).flatten() 
    plt.hist(ar,bins = 256, normed = 1, facecolor = 'red', edgecolor = 'red', hold = 1)
    
    ag = np.array(g).flatten()
    plt.hist(ag,bins = 256, normed = 1, facecolor = 'green', edgecolor = 'green', hold = 1)
    
    ab = np.array(b).flatten()
    plt.hist(ab,bins = 256, normed = 1, facecolor = 'blue', edgecolor = 'blue', hold = 1)
    
    plt.show()

    这里写图片描述

    参考博客:感谢~

    http://blog.csdn.net/fuwenyan/article/details/53676153
    http://www.linuxdiyf.com/linux/30432.html

    展开全文
  • 图像处理中经常用的一幅图片Lena.jpg

    万次阅读 多人点赞 2014-07-02 10:32:05
    在数字图像处理中,Lena(Lenna)是一张被广泛使用的标准图片,特别在图像压缩的算法研究中。 (为什么用这幅图,是因为这图的各个频段的能量都很丰富:即有低频(光滑的皮肤),也有高频(帽子上的羽毛),很...
  • IV OpenCV 中的图像处理(一) IV OpenCV 中的图像处理(二) IV OpenCV 中的图像处理(三) IV OpenCV 中的图像处理(四) IV OpenCV 中的图像处理(五) IV OpenCV 中的图像处理(六) V 图像...
  • 图像处理之Matlab特征提取和表达

    万次阅读 多人点赞 2017-08-07 17:36:14
    介绍图像处理之特征提取和表达,使用bwboundaries函数获取边界,使用regionprops函数统计特征
  • 图像处理入门教程

    万次阅读 多人点赞 2015-12-29 11:21:24
    最近有人问我图像处理怎么研究,怎么入门,怎么应用,我竟一时语塞。仔细想想,自己也搞了两年图像方面的研究,做个两个创新项目,发过两篇论文,也算是有点心得,于是总结总结和大家分享,希望能对大家有所帮助。在...
  • 图像处理技术(一)图像处理基础知识

    万次阅读 多人点赞 2018-08-30 15:52:26
    图像处理的概念是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需求。 模拟图像:连续图像,采用数字化(离散化)表示和数字技术处理之前的图像。 数字图像:由连续的模拟图像采样和量化而得的图像,...
  • 图像处理基础实例环境测试 代码参考:http://yongyuan.name/pcvwithpython/ 1.PIL-Python图像库 PIL (Python Imaging Library)图像库提供了很多常用的图像处理及很多有用的图像基本操作。PIL库下载地址 ...
  • python图像处理 (一).PIL图像处理库学习① 1、自定义创建图片 PIL除了可以从文件中打开一张图片,我们也可以创建一张图片 Image.new(mode,size) ⇒ image Image.new(mode, size,color) ⇒ image 创建具有给定...
  • Python图像处理基础

    千次阅读 多人点赞 2018-01-19 11:38:10
    Python图像处理基础 对我个人而言使用Python图像处理意在取代matlab,集中化使用Python环境保证之后在机器学习和OpenCV的使用上具有一致性,虽然从实验室师兄师姐的口中得知Python的图像处理较之matlab相对复杂...
  • C语言数字图像处理---1.1图像的像素格式与图像读写

    千次阅读 多人点赞 2019-12-25 10:06:22
    前言 本专栏面向所有希望或有兴趣从事数字图像处理工作、学习或研究的朋友,不懂MATLAB和OPENCV没关系,仅需要基础的C语言知识,便可以通过本专栏内容轻松入门数字图像处理方向。
  • 图像处理算法

    万次阅读 2014-12-11 09:32:27
    终于写完数字图像分割这部分内容了,由于内容比较多,因此做一个小的内容提要,有利于更有调理的阅读,如下: 1.数字图像分割方法概要 2.基于边界分割 2.1边缘检测 2.2边界提取(简单连接,启发式搜索,曲线拟合...
  • Matlab图像处理预处理

    千次阅读 2016-01-06 13:31:41
    图像格式转换在图像处理中,读入的图片通常是uint8格式,一是由于unit8的精读问题,二是由于有的函数不支持uint8类型,所以通常要转换成为double格式。 转换通常要用im2double()函数,而不用double()或mat2gray()...
  • MATLAB 图像处理工具箱 一种简单的基于图像处理交通信号灯识别算法 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个...
  • CxImage图像处理类库

    千次阅读 2011-05-17 14:17:00
    CxImage是一个可以用于MFC 的C++图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K 等格式的文...
  • 深度学习在图像处理领域中的应用综述[J].高教学刊,2018(09):72-74 1.特征表达/提取方法->特征学习 图像特征是指图像的原始特性或属性,可以分为视觉特征或统计特征。视觉特征主要是人的视觉直觉感受的自然特征...
  • 图像处理入门必看

    万次阅读 多人点赞 2017-11-27 22:36:25
    (原MyBlog)前要说明这段时间在网上找资料学习图像处理的相关知识,在网上看到这篇写得相当不错的文章,在大牛允许转载的情况下,特搬家至此,方便更多的初学者能够看到。正文开始最近有人问我图像处理怎么研究,怎么...
  • airplane baboon book cat fruits hand_sample1 hand_sample2 ...hand_sample3
  • OpenCV支持有限的图片格式,具体可参阅官方文档(常用的支持bmp、jpeg、png、tiff),可以使用Imgcodecs类的imread方法来读取图片(注意测试时,路径不要包括中文): 结构目录(Eclipse中): 创建两个类:...
  • 二、javaCV图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制 三、opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速...
  • 图像处理之信息隐藏

    千次阅读 2017-05-16 10:00:31
    matlab处理图像入门级实验
  • python skimage对于图像处理

    千次阅读 2018-08-26 14:22:46
    基于python脚本语言开发的数字图片处理包,比如PIL,Pillow, opencv, scikit-image等。...scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样。这里选择Skimage模块进...
  • 形态学图像处理(matlab代码测试

    千次阅读 2017-12-30 16:35:59
    形态学是提取图像特征的有力工具,针对二值图像和灰度图像的腐蚀、膨胀和重构的基本操作可以组合使用,以执行非常宽泛的任务。
  • 图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的...
  • 图像处理

    千次阅读 2013-10-18 10:27:53
    利用VC实现图像的特殊显示效果 经常看电视的朋友们不知注意...经过这些特效处理后的图像增强了观众们的视觉效果,它们看上去仿佛是使用3D技术作的,这也是为什么这种技术那么流行的原因吧。其实,我们完全可以用一些简

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,194
精华内容 46,077
关键字:

图像处理测试图片