数字图像处理Java学习笔记
一角残叶
人生如逆旅,我亦是行人
展开
-
OpenCV Python学习笔记(7)—— 图像梯度
1 一阶导数和 Soble 算子1.1 Soble 算子1.2 二阶导数最大变化处的值为0,即边缘是02 测试import cv2 as cvdef lapalian_demo(image): dst = cv.Laplacian(image, cv.CV_32F) lpls = cv.convertScaleAbs(dst) cv.imshow("...原创 2019-07-23 15:59:51 · 290 阅读 · 0 评论 -
二值图像分析笔记(1)—— 图像二值化
1 二值图像像素矩阵只包含0和1;0:黑色1:白色1.1 RGB彩色图像到二值图像的转换彩色图像到灰度图像的转换灰度图像到二值图像1.2 常见的图像二值化方法基于均值-统计学原理迭代法Otus 法(最好用的)直方图法1.3 基于均值-统计学原理计算灰度图像的像素均值 m,以 m 作为阈值把图像分成二值图像,对任意一个像素点的灰度值xx > m ? x...原创 2019-07-22 10:44:56 · 2474 阅读 · 0 评论 -
二值图像分析笔记(2)—— 基于均值的图像二值化
1 基于均值的图像二值化抽象类 AbstractImageOptionFilterpackage binimage.utils;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;public abstract class AbstractImageOptionFilter { pub...原创 2019-07-22 10:48:40 · 1095 阅读 · 0 评论 -
二值图像分析笔记(3)—— 基于迭代法的图像二值化
1 基于迭代法的图像二值化DiedaiFilterpackage binimage.binary;import binimage.utils.AbstractImageOptionFilter;import java.awt.image.BufferedImage;public class DiedaiFilter extends AbstractImageOptionFilt...原创 2019-07-22 11:10:16 · 1004 阅读 · 0 评论 -
二值图像分析笔记(4)—— 基于全局Otus法的图像二值化
1 全局Otus法OtusFilterpackage binimage.binary;import binimage.utils.AbstractImageOptionFilter;import java.awt.image.BufferedImage;import java.util.Arrays;public class OtusFilter extends Abstra...原创 2019-07-22 13:45:40 · 684 阅读 · 0 评论 -
二值图像分析笔记(5)——腐蚀与膨胀(Erosion, Dilation)
1 图像形态学腐蚀膨胀2 腐蚀测试BinaryFilterpackage binimage.binary;import binimage.utils.AbstractImageOptionFilter;import java.awt.image.BufferedImage;public class BinaryFilter extends Abstract...原创 2019-07-22 14:37:34 · 1107 阅读 · 0 评论 -
二值图像分析笔记(6)——膨胀(Dilation)
1 膨胀DilationFilterpackage binimage.dilation;import binimage.binary.BinaryFilter;import java.awt.image.BufferedImage;public class DilationFilter extends BinaryFilter { // 前景像素值 privat...原创 2019-07-22 15:10:52 · 1206 阅读 · 0 评论 -
二值图像分析笔记(7)—— 开闭操作
1 开操作主要应用在二值图像分析,灰度图像也可以;开操作 = 腐蚀 + 膨胀, 输入图像 + 结构元素有利于消除图像中的噪声点分离不同的对象结构,基于不同的结构元素2 闭操作闭操作 = 膨胀 + 腐蚀输入 : 图像 + 结构元素不同的结构元素得到不同的效果;有利于消除图像中的噪声点;分离不同的对象结构;3 开操作测试腐蚀 ErosionFilter...原创 2019-07-22 15:44:41 · 970 阅读 · 0 评论 -
OpenCV Python学习笔记(1)
1 OpenCV2 测试程序import cv2 as cvdef get_image_info(image): print(type(image)) print(image.shape) print(image.size) print(image.dtype)src = cv.imread("resource/color.png")cv.nam...原创 2019-07-23 09:10:33 · 213 阅读 · 0 评论 -
OpenCV Python学习笔记(2)—— 色彩空间
1 色彩空间常见的色彩空间最常见的HSV 与 RGBYUV 与 RGB2 色彩空间转换import cv2 as cvdef color_space_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) cv.imshow("gray", gray) hsv = cv.cvtCol...原创 2019-07-23 09:44:39 · 222 阅读 · 0 评论 -
OpenCV Python学习笔记(3)——像素运算
1 像素运算1.1 加法import cv2 as cvdef add_demo(m1, m2): dst = cv.add(m1, m2) cv.imshow("add demo", dst)src1 = cv.imread("resource/LinuxLogo.jpg")src2 = cv.imread("resource/WindowsLogo.jpg")...原创 2019-07-23 10:25:37 · 180 阅读 · 0 评论 -
OpenCV Python学习笔记(4)—— ROI 与泛洪填充,模糊操作, 高斯模糊
1 ROIregion of interest获取 ROI: numpy 指定长宽2 模糊操作均值模糊中值模糊自定义模糊2.1 模糊操作的原理基于离散卷积定义好每一个卷积核不同卷积得到不同的卷积效果模糊是卷积的一种表象import cv2 as cvimport numpy as np# 均值模糊,去除随机噪声def blur_demo(image)...原创 2019-07-23 11:30:05 · 307 阅读 · 0 评论 -
OpenCV Python学习笔记(5)—— 边缘保留滤波(EPF)
1 边缘保留滤波高斯双边均值迁移2 测试import cv2 as cvimport numpy as npdef bi_demo(image): dst = cv.bilateralFilter(image, 0, 100, 15) cv.imshow("bi_demo", dst)def shift_demo(image): dst = cv....原创 2019-07-23 14:01:34 · 574 阅读 · 0 评论 -
OpenCV Python学习笔记(6)——图像直方图(histogram)
1 直方图import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef plot_demo(image): # 第一个参数统计频次 plt.hist(image.ravel(), 256, [0, 255]) plt.show()def image_demo(image)...原创 2019-07-23 14:49:26 · 729 阅读 · 0 评论 -
图像处理学习笔记(8)—— 图像灰度化与二值化
1 灰度化平均值法 : (R + G + B)/ 3最大最小值法 : (Max(R,G,B) + Min(R,G,B)) / 2权重法:0.299 * R + 0.587 * G + 0.144 * B2 二值化基于平均值经验值 127原创 2019-07-22 10:01:33 · 1323 阅读 · 0 评论 -
图像处理学习笔记(7)—— 图像直方图
1 Image Histtogram1.1 画直方图HistogramFilterpackage demo2.histogram;import demo2.utils.AbstractImageOptionFilter;import java.awt.image.BufferedImage;import java.util.Arrays;public class Hist...原创 2019-07-21 23:12:46 · 778 阅读 · 0 评论 -
图像处理学习笔记(6)—— 图片对比度
1 图像对比度ContrastAdjustpackage demo2.contrast;import demo2.utils.AbstractImageOptionFilter;import java.awt.image.BufferedImage;public class ContrastAdjust extends AbstractImageOptionFilter { ...原创 2019-07-21 15:20:37 · 592 阅读 · 0 评论 -
OpenCV Python学习笔记(8)—— Canny 边缘提取
1 Canny 步骤高斯模糊-GaussianBlur灰度转换 - cvtColor计算梯度 - Sobel / Scharr非最大信号抑制高低阈值输出二值图像2 测试import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0,...原创 2019-07-23 16:20:31 · 415 阅读 · 0 评论 -
OpenCV Python学习笔记(9)—— 直线检测
1 霍夫直线变换Hough Line Transform 用来做直线检测前提条件: 边缘检测已经完成平面空间到极坐标的空间转换2 测试import cv2 as cvimport numpy as npdef line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) edges ...原创 2019-07-23 16:45:25 · 276 阅读 · 0 评论 -
OpenCV Python学习笔记(10)—— 轮廓发现
1 轮廓发现基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果findContoursdrawContours利用梯度避免阈值烦恼2 测试import cv2 as cvimport numpy as npdef contours_demo(image): dst = cv.GaussianBlur(image, (3, 3...原创 2019-07-23 17:09:24 · 276 阅读 · 0 评论 -
OpenCV Python学习笔记(11)—— 对象测量
1 弧长和面积计算每个轮廓的弧长和面积,单位是像素1.1 算面积import cv2 as cvimport numpy as npdef measure_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRES...原创 2019-07-23 20:55:38 · 549 阅读 · 7 评论 -
OpenCV Python学习笔记(12)—— 膨胀与腐蚀
1 腐蚀import cv2 as cvdef erode_demo(image): print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTS...原创 2019-07-23 22:05:02 · 193 阅读 · 0 评论 -
OpenCV Python学习笔记(13)——开闭操作
1 开操作主要应用在二值图像分析中,灰度图像也可以开操作 = 腐蚀 + 膨胀, 输入图像 + 结构元素去除小的干扰块import cv2 as cvimport numpy as npdef open_demo(image): print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ...原创 2019-07-23 22:40:39 · 282 阅读 · 0 评论 -
OpenCV Python学习笔记(14)—— 其他的形态学操作:顶帽,黑帽
1 顶帽 (tophat)指原图与开操作之间的差值图像import cv2 as cvimport numpy as npdef tophat_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) kernel = cv.getStructuringElement(cv.MORPH_RECT, (15,...原创 2019-07-23 23:09:45 · 425 阅读 · 0 评论 -
图像处理学习笔记(1)—— 图像的基本构成
1 图像的基本构成像素数据元数据属性格式信息文件信息2 Java API 处理图像BufferedImage 对象ImageIO读写图像文件BitmapFactory(安卓)package demo2;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java....原创 2019-07-19 16:56:20 · 1736 阅读 · 0 评论 -
图像处理学习笔记(2)——像素值统计
1 像素值的统计均值与方差方差-空白图像方差公式原创 2019-07-20 16:24:54 · 986 阅读 · 0 评论 -
图像处理学习笔记(3)—— 图像的数学运算
1 图像数学运算ImageMathFilterpackage demo2;import java.awt.image.BufferedImage;public class ImageMathFilter extends AbstractImageUtils { private int type; private int value; public Imag...原创 2019-07-20 19:58:36 · 415 阅读 · 0 评论 -
图像处理学习笔记(4)—— 色彩空间
1 图像的色彩空间RGB(计算机图形系统)YCbCr (视频系统)HIS / HSB / HSV (色相、饱和度、亮度)1.1 RGB 到 YCbCr 的相互转化1.2 测试AbstractImageOptionFilterpackage demo2.utils;import java.awt.image.BufferedImage;import java.awt....原创 2019-07-20 23:40:50 · 341 阅读 · 0 评论 -
图像处理学习笔记(4)——查找表 LUT 和通道
1 查找表查找表实现颜色映射应用:彩色填充原创 2019-07-21 11:06:18 · 1700 阅读 · 1 评论 -
图像处理学习笔记(5)—— 彩色调节与亮度调整
1 色彩调节ColorAdjustFilterpackage demo2.coloradjust;import demo2.utils.AbstractImageOptionFilter;import java.awt.image.BufferedImage;public class ColorAdjustFilter extends AbstractImageOptionFi...原创 2019-07-21 12:36:01 · 718 阅读 · 0 评论 -
OpenCV Python学习笔记(6)—— 二值化
1 二值化opencv 中的二值化OSTUTriangle自动和手动import cv2 as cvimport numpy as npdef threshold_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # ret, binary = cv.threshold(gray, 0, 25...原创 2019-07-23 15:39:09 · 335 阅读 · 0 评论