android 下怎样获取图片像素值

android 下怎样获取图片像素值,第1张

int[] pixels = new int[bitgetWidth()bitgetHeight()];//保存所有的像素的数组,宽×高

bitgetPixels(pixels,0,bitgetWidth(),0,0,bitgetWidth(),bitgetHeight());

for(int i = 0; i < pixelslength; i++){

int clr = pixels[i];

int red = (clr & 0x00ff0000) >> 16; //取高两位

int green = (clr & 0x0000ff00) >> 8; //取中两位

int blue = clr & 0x000000ff; //取低两位

Systemoutprintln("r="+red+",g="+green+",b="+blue);

}

其中getPixels中第三个参数要为的宽度

mBitmap2getPixels(pixels, 0, w, 0, 0, w, h);//获得mBitmap2的像素颜色值,赋值给pixels,第三个参数为一行的像素数(矩形的宽)mBitmap3 = BitmapcreateBitmap(pixels, 0, w, w, h, BitmapConfigARGB_8888);//用上面的pixels颜色数组创建一个Bitmap应该能帮到你吧

检测完边缘后用随机数确定xy值就行了啊,可以用循环判断到xy值确定的点是否在边缘范围内,然后获取就好了。具体算法:首先先确定物体所在的矩形区域,判断好矩形左上角点的坐标startX,startY,以及矩形的宽高,假设为width和height;然后循环,通过Random rand = new Random(); int x = startX+randnextInt(width); int y = startY+randnextInt(height); 来获取随机点的坐标;最后循环条件是x,y不在你检测的边缘范围内,如果在范围内就退出循环检测颜色值就行啦

Android程序中修改颜色:

工具:Android Studio 122、电脑

具体步骤:

首先找到菜单栏,单击菜单栏的“File”菜单。

在d出的二级菜单中选中“Settings”选项,单击,打开设置窗口。

在设置窗口中的左边部分单击“Editor”选项,展开。

在展开的下一级菜单中,找到“Colors & Fonts”选项,展开。

然后在展开的,菜单中选择“Font”选项,打开Font字体设置窗口。

在打开的“Font”窗口中,找到“Save As”按钮,单击,在d出的对话框中为自己的设置起一个名字,如果不单击“Save As”新建一个样式的话,Android Studio默认是不给更改的。

在d出的对话框中,输入我们更改后需要保存的样式的名称,然后单击“OK”。

进行更改设置了,“Primary font”是更改字体样式,比如“楷体”,“Size”我们可以更改字体的大小,“Line spacing”可以更改行间距。

可以看到,代码的字体样式已经换成了更改过的样子了。

使用 Mat 中对矩阵元素的地址定位的知识 (参考博文:OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解)

Code 1 :

int main()

{

//新建一个uchar类型的单通道矩阵(grayscale image 灰度图)

Mat m(400, 400, CV_8U, Scalar(0));

for (int col = 0; col < 400; col++)

{

for (int row = 195; row < 205; row++)

{

cout << (int)((mdata + mstep[0] row + mstep[1] col)) << " ==> ";

//获取第[row,col]个像素点的地址并用 符号解析

(mdata + mstep[0] row + mstep[1] col) = 255;

cout << (int)((mdata + mstep[0] row + mstep[1] col)) << endl;

}

}

imshow("canvas", m);

cvWaitKey();

return 0;

}

Output 1 :

0 ==> 255

0 ==> 255

0 ==> 255

0 ==> 255

0 ==> 255

0 ==> 255

Code1只是演示了单通道的情况,对于多通道的例子,请看 Code2 然后再看 Code3。

Fn 2 :

使用 Mat::at 函数

原型 template<typename _Tp> inline _Tp& Mat::at(…) //其中参数有多个,也就是说 at 函数有多个重载

返回值为 Mat 类型, Mat 有个索引的重载,也就是 [] 符号的重载,用这个重载可以定位多通道数据,具体示例可以看下面代码

下面的代码把红色通道值大于128的颜色的置为白色,左边为原图,右边为处理过后的图。

以上就是关于android 下怎样获取图片像素值全部的内容,包括:android 下怎样获取图片像素值、android中如何获得像素点的颜色值、请问在android中,对图片进行边缘检测后,怎样在两个边缘之间提取任意几个点的颜色值呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9639677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存