Tag: 图像处理

如何在Android OpenCV中执行图像RGB规范化?

我正在尝试使用OpenCV 2.4.8 for Android执行图像规范化。 我的测试设备是三星S3。 我已经编写了如下所示的JNI函数来执行图像规范化。 我对图像规范化的定义如下: r’ is 255* r/(r+g+b) g’ is 255* g/(r+g+b) b’ is 255* b/(r+g+b) 现在我需要实现这一点。 我写了一个函数来执行此操作。 这似乎不起作用。 我对我的应用程序的其他部分充满信心(即它们没有bug)。 只有这部分会导致问题。 我可能没有正确编写此function。 请帮忙。 我还附上了我的结果截图。 如果你看一下这个图像,只有一半看起来是标准化的(但它实际上没有标准化,只是看起来那样)而另一半看不到。 为了解决这个问题,我尝试在for循环中使用cols更改行,结果是相同的。 还提供了此代码。 期待一些帮助。 (仅供参考 – 我对openCV来说是全新的)。 感谢您的理解。 void NormalizeRGB(JNIEnv*, jobject, jlong img) { Mat& imgM = *(Mat*)img; vector rgb; int cols = imgM.cols; int rows = imgM.rows; […]

如何在java中分隔文本区域和图像

我正在使用OCR来识别护照详细信息,因为我使用的是Tesseract Java API。 为了获得更好的准确性,我需要将整个图像(可以是.png,.jpeg,.tiff)划分为文本区域。 是否有任何开源java库将文本区域与图像分开。 请给我任何建议。

Bufferedimage成圆形

我有一个来自字节数组的缓冲图像。 如何将图像制成圆圈? 作物? 我不想要一个圆圈,我希望原始图像变成圆形并显示 def bufferedImage = imgSvc.convertByteArrayToBufferedImage(crop.image)

使用OpenCV扫描文档

我正在开发类似于此的 Android文档扫描程序。 我搜索了这个,发现这可以用OpenCV实现,所以从OpenCV开始。 我尝试了很多例子从图像中检测文档,但无法检测图像是否有浅色背景。 检查样品图像以进行测试。 我正在使用OpenCV Android SDK并使用java代码进行图像处理。 这是代码: public void scanDocument(Bitmap mBitmap) { Mat mOriginalMat = convertToMat(mBitmap); int mRatio = getRadio(mOriginalMat); Size mSize = getImageFitSize(mOriginalMat, mRatio); Mat resizedMat = resizeMat(mOriginalMat, mSize); Mat colorMat = grayMat(resizedMat, mSize); Mat blurMat = medianBlurMat(colorMat, mSize); Mat thresholdMat = cannyEdgeMat(blurMat, mSize); ArrayList contourList = findContours(thresholdMat, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE); double maxArea […]

OpenCV的FrameGrabber的输出图像不正确

我正在开发一个依赖于手指检测的OpenCV项目。 目前我有一个OpenCVFrameGrabber ,它抓取一个帧并将其放在一个IplImage 。 然后我将该图像绘制到我的GUI上。 这一切都有效,但即使我有彩色相机,绘制的图像似乎是黑白的。 图像中有明显的垂直线,当有一些颜色时,它似乎被分成沿这些线的分量。 有谁知道获取原始网络摄像头图像的方法?

Java代码给出图像草图效果

我正在创建一个应用程序,我需要将彩色图像转换为铅笔草图,例如看到这个 。 回答在Java中实现修改草图生成给出了类似的效果,但不是我想要的(如上例所示)。 有人能告诉我如何在java中获得所需的草图效果吗? 此外,是否有任何食谱类型资源/博客/书籍/开源图书馆显示java(或任何其他语言)代码的各种有趣的图像效果?

从Java Servlet将canvas图像保存到png图像文件中

我一直在尝试将canvas图像从HTML页面保存到Java Servlet中的图像文件。 我需要通过Ajax请求将图像从HTML发送到Java Servlet。 有人可以帮帮我吗? 我已经尝试过以下选项 堆栈溢出问题1 这里, request.getPart(“myImg”)返回null,因此这不起作用。 请帮帮我。 我也尝试了以下解决方案将canvas的内容发送到java 这里的问题是它给了我一个例外,在下一行设置了无效的文字/长度 BufferedImage bfi = ImageIO.read(new ByteArrayInputStream(decodedBytes)); 请帮忙!! 更新: 这是我的Ajax代码: function uploadImage() { var canvasServer = document.getElementById(“canvasThumbResult”); var context = canvasServer.getContext(“2d”); var imageDataURL = canvasServer.toDataURL(‘image/png’); var xhr = new XMLHttpRequest(); xhr.open(“POST”, trinityCvaServicesUrl+”common/uploadImage”, true); var boundary = Math.random().toString().substr(2); xhr.setRequestHeader(“content-type”, “multipart/form-data; charset=utf-8; boundary=” + boundary); var multipart […]

OpenCv android:将图像的一部分复制到新的Mat

我是OpenCV的新手,并试图通过实施来学习。 我需要绘制我在新Mat中检测到的轮廓,以便我可以使用它们。 这是我的原始图片: 完成一些工作后,我通过查找和绘制轮廓来实现这一目标: 这是我的代码 m = Utils.loadResource(MainActivity.this, R.drawable.sheet1, Highgui.CV_LOAD_IMAGE_COLOR); Bitmap bm = Bitmap.createBitmap(m.cols(), m.rows(),Bitmap.Config.ARGB_8888); Imgproc.cvtColor(m, m, Imgproc.COLOR_BGR2GRAY); Imgproc.medianBlur(m, m, 3); Imgproc.threshold(m, m, 0, 255, Imgproc.THRESH_OTSU); Core.bitwise_not(m, m); Imgproc.dilate(m, m, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(1,118))); //Contours detection java.util.List contours = new ArrayList(); Imgproc.findContours(m, contours, new Mat() ,Imgproc.RETR_EXTERNAL , Imgproc.CHAIN_APPROX_SIMPLE); Imgproc.cvtColor(m, m, Imgproc.COLOR_GRAY2BGR); //Contour drawing Mat matArray = […]

使用ImageIO读取JCS_YCCK图像

我正在使用ImageIO.read来处理上传的图像文件。 代码类似于 BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(image.getContents())); 我已经设法解决了大部分问题,但是这个让我一无所知。 上传的图像具有JCS_YCCK配置文件,如com.sun.imageio.plugins.jpeg.JPEG所定义, com.sun.imageio.plugins.jpeg.JPEG不支持该配置文件。 这导致了一个很好的堆栈跟踪,类似于: Caused by: javax.imageio.IIOException: Unsupported Image Type at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:910) at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:885) at javax.imageio.ImageIO.read(ImageIO.java:1422) at javax.imageio.ImageIO.read(ImageIO.java:1326) at com.example.ImageWriter.resizeEmbeddableImageInPlace(ImageWriter.java:231) 如何使用Java的ImageIO处理这种类型的JPEG? 更新 :我已经尝试过Commons-Sanselan,答案表明,但不幸的是它不支持JPEG文件: org.apache.sanselan.ImageReadException: Sanselan cannot read or write JPEG images. at org.apache.sanselan.formats.jpeg.JpegImageParser.getBufferedImage(JpegImageParser.java:90) at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1264) at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1231)

如何在java中读取和提取图像像素并进行比较

我想读取RGB图像并想要提取图像像素。 然后我想比较每个像素以检查图像其他部分中的任何匹配像素。 如果该像素与原始像素匹配,则匹配的像素应在java中替换为红色和黄色。 我从javaforums和图像处理网站上搜索了很多。 我还没有完美的解决方案。 给出一些像素提取器和像素匹配器示例以继续进行。