Articles of image processing

Android:图像覆盖图像

我有一个video缩略图,当您点击它时,video开始在YouTube播放器中播放。 这很好用,但是不太清楚你必须点击缩略图来播放,所以我有一个播放按钮图像,我想在右下角的缩略图上绘制。 我怎么会这样呢? 我目前在Drawable对象中有缩略图,在我的drawable资源目录中有播放按钮。 我尝试使用位图和canvas的东西,但它很难,我不知道这是不是要走的路。 非常感谢! 埃里克

Android中的OpenCV图像比较和相似度

我是OpenCV学习者。 我正在尝试图像比较。 我用过OpenCV 2.4.13.3我有这两个图像1.jpg和cam1.jpg 。 当我在openCV中使用以下命令时 File sdCard = Environment.getExternalStorageDirectory(); String path1, path2; path1 = sdCard.getAbsolutePath() + “/1.jpg”; path2 = sdCard.getAbsolutePath() + “/cam1.jpg”; FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB); DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.BRIEF); DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING); Mat img1 = Highgui.imread(path1); Mat img2 = Highgui.imread(path2); Mat descriptors1 = new Mat(); MatOfKeyPoint keypoints1 = new MatOfKeyPoint(); detector.detect(img1, keypoints1); […]

如何在android中创建动态用户面部模型?

您好我想在android中创建动态用户面部模型并显示给用户。 我搜索并发现我需要用户不同角度的面部框架(图像),如14到16个图像,并且为了显示目的需要使用opengl(用于平滑度)在用户手指滑动上更改图像(框架),使其看起来像3D图像。 但我希望像每个框架中的一些编辑(佩戴耳朵)一样显示给用户,如https://lh3.googleusercontent.com/WLu3hm0nIhW5Ps9GeMS9PZiuc3n2B8xySKs1LfNTU1drOIqJ-iEvdiz-7Ww0ZX3ZtLk=h900 请给我一些建议或示例。

Android OpenCV对象检测

我试图在Android上实现这样的东西: http : //www.youtube.com/watch?v = zjxWpKCQqJc。 这是我的代码: public Mat onCameraFrame(CvCameraViewFrame inputFrame) { Mat novo = new Mat(); Mat resp = new Mat(); Mat homer = new Mat(); //resp = inputFrame.gray(); novo = inputFrame.gray(); Mat lido = new Mat(); try { lido = Utils.loadResource(this, R.drawable.homer); } catch (IOException e) { e.printStackTrace(); } Imgproc.cvtColor(lido, homer, Imgproc.COLOR_RGB2GRAY); FeatureDetector […]

Android使用渲染脚本将ImageReader Image转换为YCbCr_420_SP(NV21)字节数组?

我目前正在使用Javacv ,它利用public void onPreviewFrame(byte[] data, Camera camera)相机function。 由于相机已被弃用,我一直在研究camera2和MediaProjection 。 这两个库都使用ImageReader类 。 目前,我使用以下代码实例化这样的ImageReader : ImageReader.newInstance(DISPLAY_WIDTH, DISPLAY_HEIGHT, PixelFormat.RGBA_8888, 2); 并附加一个OnImageAvailableListener如下所示: private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() { @Override public void onImageAvailable(ImageReader reader) { mBackgroundHandler.post(new processImage(reader.acquireNextImage())); } 我尝试使用RGBA_8888格式与Javacv按照这个线程: https : //github.com/bytedeco/javacv/issues/298但这对我不起作用。 所以相反,我正在考虑使用渲染脚本将这些Image转换为NV21(YUV_420_SP)格式(这是onPreviewFrame函数中相机的默认输出),因为这对我的camera库起作用。 我还阅读了这个和本网站的post进行转换,但这些对我来说不起作用,我担心它们会太慢。 此外,我对C的了解非常有限。 基本上看起来我想要https://developer.android.com/reference/android/renderscript/ScriptIntrinsicYuvToRGB.html的反向操作 那么如何从一个Image到一个与onPreviewFrame函数输出相匹配的字节数组,即NV21(YUV_420_SP)格式? 最好使用Renderscript,因为它更快。 编辑1: 我尝试过使用ImageFormat.YUV_420_888但无济于事。 我一直得到错误The producer output buffer format 0x1 doesn’t match […]

使用PorterDuff模式擦除位图部件

我尝试使用Porter-Duff Xfermodes在我的Android应用程序中擦除部分位图。 我有一个绿色背景,由蓝色位图覆盖。 当我触摸屏幕时,应该创建覆盖位图中的“洞”,使绿色背景可见。 而不是一个洞,我当前的代码产生一个黑点。 以下是我的代码。 任何想法,我在这里做错了什么? /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(new DrawView(this)); } public class DrawView extends View implements OnTouchListener { private int x = 0; private int y = 0; Bitmap bitmap; Canvas bitmapCanvas; private final Paint paint = […]

Android中内存高效的图像resize

我正在尝试将从相机中检索到的图像(大约5-8百万像素)缩小到一个较小的尺寸(最大为1024×768)。 我试过以下代码,但我一直得到一个OutOfMemoryError 。 Bitmap image = BitmapFactory.decodeStream(this.image, null, opt); int imgWidth = image.getWidth(); int imgHeight = image.getHeight(); // Constrain to given size but keep aspect ratio float scaleFactor = Math.min(((float) width) / imgWidth, ((float) height) / imgHeight); Matrix scale = new Matrix(); scale.postScale(scaleFactor, scaleFactor); final Bitmap scaledImage = Bitmap.createBitmap(image, 0, 0, imgWidth, imgHeight, scale, false); […]

Android如何做图像屏幕幻灯片?

我正在android上构建一个非常基本的图库,它显示了相机文件夹中的最后一个图像,用户可以向左滑动以查看上一个图像。 我使用viewpager完成了一个实现,使用sampleSize完成了一个pagerAdapter来扩展图像。 我的问题是,实现没有默认的图库应用程序那么高效,每次滑动图像时,您必须等待大约200毫秒才能加载下一个图像。 所以基本上我对如何实现它的想法并没有成功。 如何有效地执行此操作,如果可能,可以使用允许稍后放大和缩小的实现? 这看起来很有希望,但我不知道如何使用文件而不是drawable实现它http://www.androidviews.net/2012/11/photoview/ 编辑: 我已经设法使用photoview(一个被攻击的viewpager)提高了一点速度,但是将文件路径转换为位图或drawables需要花费太多。 我尝试过dilix和iDroid Explorer建议的这两种方法: // Method A Drawable d = Drawable.createFromPath(imagePath); imageView.setImageDrawable(d); // Method B Bitmap myBitmap = BitmapFactory.decodeFile(imagePath); imageView.setImageBitmap(myBitmap); 但两者都产生错误Bitmap too large to be uploaded into a texture 。 我需要尽快将图像提供给imageView,并以某种方式绕过这个错误,也许我会得到一个不错的速度。 现在我正在缩放图像并将它们转换为可绘制图像,但效率不高。

渐进式图像渲染,逐像素加载图像并更新imageLoader中的imageview

我正在开发一个应用程序,我需要在列表中加载服务器映像。 但是显示图像的方式有点不同。 我需要在下载时显示图像,即逐个像素。 最初,图像设置为模糊图像,而不是下载,图像设置得更清晰,并且会产生原始图像。 如果你想看看我在说什么,你可以参考以下链接: 渐进式图像渲染 在这里你可以看到优质PNG风格的二维隔行渲染(第二个)的演示。 我瞪了很多但没有find任何相关的答案我的查询。 任何forms的帮助都会很明显。 提前致谢。

如何检测墙的长边准备面具和重新着色

主要思想是允许用户重新着色到特定的基于墙的用户选择。 目前我已经使用cvFloodFill实现了这个function(有助于准备掩模图像),这可以帮助我改变墙的相对HSV值,这样我就可以保留边缘。 但是这个解决方案的问题在于它适用于颜色,并且所有墙壁都被重新绘制,而不是由用户选择的单个墙壁。 我也尝试过canny边缘检测,但它只能检测边缘但无法将其转换为区域。 请在下面find我目前用于重绘function的代码 准备面具 cvFloodFill(mask, new CvPoint(295, 75), new CvScalar(255, 255, 255,0), cvScalarAll(1), cvScalarAll(1), null, 4, null); 分道 cvSplit(hsvImage, hChannel, sChannel, vChannel, null); 换颜色 cvAddS(vChannel, new CvScalar(255*(0.76-0.40),0,0,0), vChannel, mask); 我们如何从图像中检测边缘和相应区域。 我正在寻找除opencv之外的解决方案,但应该可以用于iPhone和Android 编辑 我可以使用以下步骤在下面的图像中获得一些结果 cvCvtColor(image, gray, CV_BGR2GRAY); cvSmooth(gray,smooth,CV_GAUSSIAN,7,7,0,0); cvCanny(smooth, canny, 10, 250, 5); 这个输出有两个问题,不知道如何解决它们1.靠近边缘近距离2.去除小边缘