我的SWT与数字图像处理总结(3)—SWT如何得到图像某个位置的像素值和相应的RGB的值...
// The pixel data of the image.
byte[] pixelData = ideaImageData.data;
int redMask = ideaImageData.palette.redMask;
int blueMask = ideaImageData.palette.blueMask;
int greenMask = ideaImageData.palette.greenMask;
int h = 0;
int pixelValue =0;
int[] lineData = new int[ideaImageData.width];
for (int y = 0; y < ideaImageData.height; y++) {
// 首先是得到每行的像素值,保存到int数组lineData中
ideaImageData.getPixels(0, y, ideaImageData.width, lineData, 0);
for (int x = 0; x < lineData.length; x++) {
//得到像素值
pixelValue = lineData[x];
//根据像素值得到RGB的值
int r = pixelValue & redMask;
int g = (pixelValue & greenMask) >> 8;
int b = (pixelValue & blueMask) >> 16;
//根据RGB的值得到亮度(或者intensity)
double temp = (double) (0.3 * r + 0.59 * g + 0.11 * b);
h = (int) (temp) + ((temp - (int) (temp)) > 0.5 ? 1 : 0);
h = h < 0 ? 0 : h;
h = h > 255 ? 255 : h;
histArray[h]++;
}
}
方法二:
byte[] data2 = new byte[ida.data.length];
int offset = 0;
int k = 0;
int r, g, b, gray;
for (int i = 0; i < ida.height; i++) {
for (int j = 0; j < ida.width; j++) {
k = offset + j * 3;
b = ida.data[k] & 0xff;
g = ida.data[k + 1] & 0xff;
r = ida.data[k + 2] & 0xff;
gray = (int) (0.11 * b + 0.59 * g + 0.3 * r);
data2[k] = data2[k + 1] = data2[k + 2] = (byte) gray;
}
offset += ida.bytesPerLine;
}
ImageData ida2 = new ImageData(ida.width, ida.height, ida.depth, ida.palette, ida.scanlinePad, data2);
imgdst = new Image(img.getDevice(), ida2);
* 根据颜色值(实际上是像素值)得到亮度
*/
public static int getBrightness(int color) {
int r = (color & 0x00ff0000) >> 16;
int g = (color & 0x0000ff00) >> 8;
int b = (color & 0x000000ff);
int y = Math.round(0.3f * r + 0.59f * g + 0.11f * b);
y = y < 0 ? 0 : y;
y = y > 255 ? 255 : y;
return y;
}
我的SWT与数字图像处理总结(3)—SWT如何得到图像某个位置的像素值和相应的RGB的值...相关推荐
- 【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解
本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图像增强处理,包括图像普通平滑.高斯 ...
- 数字图像处理与Python实现笔记之图像特征提取
数字图像处理与Python实现笔记 摘要 绪论 1 数字图像处理基础知识 2 彩色图像处理初步 3 空间滤波 4 频域滤波 5 图像特征提取 5.1 图像颜色特征提取 5.1.1 颜色直方图 1 一般 ...
- 数字图像处理与Python实现笔记之图像小波变换与多分辨率
数字图像处理与Python实现笔记 摘要 绪论 1 数字图像处理基础知识 2 彩色图像处理初步 3 空间滤波 4 频域滤波 5 图像特征提取 6 图像压缩 7 图像小波变换与多分辨率 7.1 从傅里叶 ...
- 【数字图像处理3 】(上)图像超分辨率重建(SR)概述
图像超分辨率重建 一.前言(废话时间) 二.扫盲知识 什么是 超分辨率重建? 兴起原因 三.传统超分辨率重建 1.基于插值的超分辨率重建 2.基于退化模型的超分辨率重建 3.基于学习的超分辨率重建 四 ...
- 数字图像处理第五章——几何变换与图像配准
数字图像处理第五章 数字图像处理---几何变换与图像配准 (一)点变换 (二)仿射变换 (三)投影变换 (四)应用于图像的几何变换 (五)MATLAB 中的图像坐标系统 5.1 输出图像位置 5.2 ...
- 【数字图像处理】实验(3)——图像综合应用:皮肤美化(MATLAB实现)
图像综合应用:皮肤美化 一.实验目的 二.实验原理 三.实验步骤(包括分析.代码和波形) 1.滤波.色彩空间.代数运算.锐化等技术实现美化 2.加入皮肤的亮白处理 (1)主程序 (2)图像平滑 (3) ...
- 数字图像处理(五)——Matlab实现图像的边缘锐化及各种算子的比较
实验内容 基于单方向梯度算子,Robert算子,Sobel算子,Priwiff算子,Laplacian算子,多方向模板,LOG算子编写matlab增强程序 最后,显示边缘图像和锐化增强图像,并对这些仿 ...
- 数字图像处理基础(matlab)Ⅰ:图像读取,显示等
文章目录 前言 一.实验目的 二.实现原理 三.算法设计 3.1利用imread( )函数读取图像 3.2 分别显示图像的红.绿和蓝色分量的强度 3.3 将图像转换为灰度图,显示灰度结果图像进行对比 ...
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数
标题 线性位置不变退化 估计退化函数 采用观察法估计退化函数 采用试验法估计退化函数 采用建模法估计退化函数 运动模糊函数 OpenCV Motion Blur 在这一节中,得到的结果,有些不是很好, ...
最新文章
- 8Manage:如何变革性的加强企业采购管理?
- oracle io lost,磁盘IO故障
- python 3.9 发布计划_Python 3.9.0 beta4 发布
- 前端学习(2553):内容概述
- 日语学习-多邻国-关卡1-时间2
- 通信原理 —— 绪论
- python电影爬取并下载_python爬取电影并下载
- asio ssl 笔记
- 如何做CRM系统的客户开发?
- Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余
- 逆转ISP,港科大陈启峰团队提出了可逆ISP
- Android Studio 实现将视频资源嵌入APP中
- 【前端三剑客三】 JavaScript
- FILE_DIRNAME
- 计算机械功的公式,机械功的计算
- discuz mysql 类_Discuz论坛中的的MySQL类解析
- Flutter优化加载网络图片及异常捕获
- 2022年 linux运维日常工作内容
- java cics通讯,哪种方法可以连接大型机和Java? MQ系列/ IBM CICS事务网关中哪个最好?...
- 电脑技巧:分享六个有趣好玩的网站,值得收藏
热门文章
- JavaScript内存那点事
- java 日期时间工具_Java日期时间类工具
- 表达式必须具有与对应表达式相同的数据类型_跟光磊学Java开发-运算符和表达式...
- 计算机函数left的用法,excel中的left函数怎么使用呢?
- w ndows10电脑配置看哪里,win10对电脑配置要求及如何查看电脑配置
- oracle view使用次數,oracle sql资源消耗相关视图
- Sublime 格式化 JSON
- VB 详细枚举指定目录、文件夹文件列表
- dll修改和EXCOPE
- SCPPO(一):禅道的安装