Java 图像识别 数字图像处理 从一张JPG图片中识别出若干黑色小方块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 图像识别 数字图像处理 从一张JPG图片中识别出若干黑色小方块相关的知识,希望对你有一定的参考价值。

求高手赐教,推销毕业设计的免进
想从一张Jpg图像中识别出若干黑色区域,用于对答题卡的涂卡部分进行自动算分。
求高手介绍相关java技术,如何实现,求想法思路,交流。

参考技术A 你需要关注的主要是这个类:java.awt.image.BufferedImage
可以查阅相关的API。

java图像处理技术在《java核心技术8 下卷》中有比较详细的介绍。

相关技术要求和注意事项:RGB标准、ICC配置特性、
建议如果进行像素识别的话可以选取关键点的识别方式、而且确认像素是否符合要求使用RGB的范围识别而非精确识别。

至于具体的识别操作过程,需要你详细定义开始识别的位置标准(规定的或者识别图像获取)、边界标准、大小(识别块得SIZE)、分组(给识别块确定属性)等追问

谢谢你的回答,我要做的是对答题卡的主观题进行自动判分,先将答题卡扫面,生成Jpg图像,然后对客观题(选择题,包括其他涂卡部分)进行自动处理,主观题部分(简答题)进行图像截取,进行人工给分,其中有个困难是扫面出来的图像可能出现局部的偏移。望多指教!

追答

对于可能出现的偏移,我的建议是:
①成像时避免,可以用图像工具PS下,只留下有效的绘图区域,比较简单。
②识别图像获取开始扫描的起始位置和结束位置确定扫描的矩形范围。

本回答被提问者和网友采纳

如何在matlab中从一组图像中制作gif图像?

如何在matlab中从一组'.jpg'图像(例如:I1.jpg,I2.jpg,...,I10.jpg)制作'.gif'图像?

答案

好的,这是一个简单的例子。我得到了一张带有独角兽的图像并删除了2部分以创建3个不同的图像,只是为了创建一个GIF动画。这是它的样子:

clear
clc

%// Image source: http:\giantbomb.com
A = rgb2gray(imread('Unicorn1.jpg'));
B = rgb2gray(imread('Unicorn2.jpg'));
C = rgb2gray(imread('Unicorn3.jpg'));

ImageCell = {A;B;C};

figure;
subplot(131)
imshow(A)

subplot(132)
imshow(B)

subplot(133)
imshow(C)

%// Just to show what the images look like (I removed spots to make sure there was an animation created):

%// Create file name.
FileName = 'UnicornAnimation.gif';

for k = 1:numel(ImageCell)

    if k ==1

%// For 1st image, start the 'LoopCount'.
        imwrite(ImageCell{k},FileName,'gif','LoopCount',Inf,'DelayTime',1);
    else
        imwrite(ImageCell{k},FileName,'gif','WriteMode','append','DelayTime',1);
    end

end

如您所见,它与Mathworks网站上的示例没有什么不同。这里我的图像是在一个单元格数组中,但你的图像可能是一个常规数组或其他东西。这应该工作正常;当我打开'UnicornAnimation.gif'时,它确实是一个很好的动画!

希望有所帮助!

以上是关于Java 图像识别 数字图像处理 从一张JPG图片中识别出若干黑色小方块的主要内容,如果未能解决你的问题,请参考以下文章

[C13]应用实例:图片文字识别(待整理)

c#如何识别一张图片的格式

在JAVA中,实现一个简单的图像浏览器,部署“上一张”、“下一张”两个按钮,点击按钮可前后翻阅图片。

怎样用matlab从一张图片中截取一小张图片

java图像上传中如何判断是不是是jpg格式

神经网络做MNIST手写数字识别代码