Tag: 图像处理

使用Java以multithreading模式处理图像

我应该使用Java以multithreading模式处理图像。 当我的线程数被修复时,我可能有不同数量的图像。 我必须使用固定的线程集处理所有图像。 我只是坚持如何做到这一点,我看看ThreadExecutor和BlockingQueues等…我仍然不清楚。 我正在做的是, – 获取图像并将它们添加到LinkedBlockingQueue中,LinkedBlockingQueue具有图像处理器的可运行代码。 – 创建一个threadpoolexecutor,其中一个争论是之前的LinkedBlockingQueue。 – 通过for循环迭代直到队列大小并执行threadpoolexecutor.execute(linkedblockingqueue.poll)。 – 我只看到它只处理100个图像,这是在LinkedBlockingQueue大小中传递的最小线程大小。 我知道我在某处理解我是非常错误的,如何处理100(线程)组中的所有图像,直到它们全部完成? 任何示例或伪代码都非常有用 谢谢! Ĵ

如何编辑此方法以使用javacv绘制多边形?

我在stackoverflow中经历了许多问题和问题,我找到了以下用于绘制矩形的方法。 public static void drawSquares( IplImage image, final CvSeq squares ) { if(!squares.isNull()){ CvSeq p = new CvSeq(squares.total()); cvCvtSeqToArray(squares, p, CV_WHOLE_SEQ); System.out.println(squares.total()); for(int i = 0; i < squares.total(); i ++ ) { CvPoint pts = new CvPoint(4); cvCvtSeqToArray(p.position(i), pts, CV_WHOLE_SEQ); // //cvBoundingRect(image, i); int npt[] = {4, 4}; // //DrawLine() reference http://opencv.willowgarage.com/documentation/cpp/drawing_functions.html#cv-line cvDrawLine(image, new […]

Java中的图像处理边缘检测

这是我的情况。 它涉及对齐扫描图像,这将导致不正确的扫描。 我必须将扫描的图像与我的Java程序对齐。 这些是更多细节: 在一张纸上印有一个类似表格的表格,将其扫描成图像文件。 我将用Java打开图片,我将有一个OVERLAY文本框。 文本框应与扫描图像正确对齐。 为了正确对齐,我的Java程序必须分析扫描图像并检测扫描图像上表格边缘的坐标,从而定位图像和文本框,使文本框和图像都正确对齐(以防万一)不正确的扫描) 你看,扫描图像的人可能不一定将图像放在一个完全正确的位置,所以我需要我的程序在加载时自动对齐扫描图像。 这个程序可以在许多这样的扫描图像上重复使用,所以我需要这个程序灵活。 我的问题是以下之一: 如何使用Java检测表格上边缘的y坐标和表格最左边缘的x坐标。 桌子是一张普通的桌子,有许多单元格,黑色细边框,印在白纸上(水平打印输出) 如果存在一种更简单的方法来自动对齐扫描图像,使得所有扫描图像都将图形表对齐到相同的x,y坐标,则共享此方法:)。 如果您不知道上述问题的答案,请告诉我应该从哪里开始。 我不太了解图形java编程,我有大约1个月的时间来完成这个程序。 假设我有一个紧张的时间表,我必须让我的图形部分尽可能简单。 干杯谢谢你。

如何使用java制作图像的渐变边框?

如何将图像边框设为渐变。 我google了很多,但没有找到正确的建议。 任何人都可以帮助我…… 有任何建议请……

Java – 图像识别

我有大约5000张带有水印的图像和5000张相同的图像,没有水印。 每组图像的文件名不以任何方式彼此相关。 我正在寻找Java中的API,我可以使用它来将每个水印图像与非水标记对配对。

Java和指纹识别

有人用Java实现指纹识别系统吗?

在Java中调整jpegs大小时丢失颜色(尝试使用多个库)

我已经尝试了在SO上发布的多个图像大小调整库,以及使用getScaledInstance原始java。 虽然一切都在大部分时间都有效,但有两个jpeg图像,每当我调整它们的颜色时,颜色总会搞砸。 第一张图片: 结果: 第二张图片: 结果: 我已经尝试使用包含Scalr,Thumbnailator和raw java的多个库的这些图像,使用image.getScaledInstance() (请参阅此处查看代码),但结果是相同的。 有什么想法是什么问题?

我需要什么库,所以我可以在Java中访问这个com.sun.image.codec.jpeg?

我在java中创建了一个图像水印程序,我导入了以下内容: import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; 但我得到一个错误,上面写着: 访问限制:由于对所需库C:\Program Files\Java\jre6\lib\rt.jar限制,因此无法访问JPEGCodec类型 有人知道解决这个问题的方法,或者我应该添加哪些库才能访问该库以及我找到该库的位置?

如何更改图像的亮度

我的问题:我希望能够改变资源图像的亮度,并将其三个实例作为ImageIcons。 一个亮度为50%(如此暗),另一个亮度为75%(亮度稍高),最后另一个亮度为100%(与原始图像相同)。 我也想保持透明度。 我尝试了什么:我已经四处搜索,看起来最好的解决方案是使用RescaleOp ,但我无法弄明白。 我不知道scaleFactor和偏移是什么。 这是我尝试过的代码。 public void initialize(String imageLocation, float regularBrightness, float focusedBrightness, float pressedBrightness, String borderTitle) throws IOException { BufferedImage bufferedImage = ImageIO.read(ButtonIcon.class.getResource(imageLocation)); setRegularIcon(getAlteredImageIcon(bufferedImage, regularBrightness)); setFocusedIcon(getAlteredImageIcon(bufferedImage, focusedBrightness)); setPressedIcon(getAlteredImageIcon(bufferedImage, pressedBrightness)); setTitle(borderTitle); init(); } private ImageIcon getAlteredImageIcon(BufferedImage bufferedImage, float brightness) { RescaleOp rescaleOp = new RescaleOp(brightness, 0, null); return new ImageIcon(rescaleOp.filter(bufferedImage, null)); } 电话会是这样的: […]

如何逐帧阅读video?

我想逐帧读取java8-64bit中的Mp4文件,并将每个帧作为jpg写入我的硬盘。 我的第一次尝试是使用JavaFX 2.2媒体播放器在View组件上播放该文件。 我想也许会有一个选项来注册一个观察者来获取一个事件,每次加载一个新的框架并准备在组件表面上绘制,但似乎没有这样的方法。 只抓住在组件上绘制的那些帧/像素就足够了。 这可以通过使用媒体播放器来完成吗? 我使用媒体播放器的原因是bcs这是我工作的最简单的解决方案。 我尝试了vlcj,只有32位,和gstreamer但没有运气:( 到目前为止我得到了什么: public class VideoGrabber extends extends JFrame { // code for scene setup omitted final MediaView view = createMediaView(…) // some other stuff happens here // now start the video view.getMediaPlayer().seek(Duration.ZERO); view.getMediaPlayer().play(); view.getMediaPlayer().setOnEndOfMedia(new Runnable() { // save image when done BufferedImage img = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_BGR […]