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中,对图片进行边缘检测后,怎样在两个边缘之间提取任意几个点的颜色值呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)