我试图在C++中理解这一点.如果A类具有非虚方法,而扩展A的B类覆盖该方法,我可以创建B的实例并以某种方式使用B中定义的方法吗?是否有必要覆盖非虚方法?
我创建了一个拍摄和保存照片的应用程序.我在预览的顶部有预览和叠加.叠加层定义了一个正方形(正方形周围的区域显示预览有点暗),如图所示:
我需要做的是提取图像中正方形所在的部分.方块的定义如下:
Rect frame = new Rect(350,50,450,150);
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我有可以保存的字节数组(byte []数据),但我想更改应用程序,以便只保存方形区域.
编辑:我尝试了以下内容:
int[] pixels = new int[100000];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);
bitmap.getPixels(pixels, 0, 480, 350, 50, 100, 100);
bitmap = Bitmap.createBitmap(pixels, 0, 100, 100, 100, Config.ARGB_4444);
bitmap.compress(CompressFormat.JPEG, 0, bos);
byte[] square = bos.toByteArray();
Run Code Online (Sandbox Code Playgroud)
然后将数组"square"写入一个新文件......问题是我得到一个由线组成的图片...我做的转换有问题
我已经构建了一个应用程序,可以在您触摸预览时拍照.我可以拍很多照片,但有时当我触摸预览拍照时,没有快门声,整个应用都冻结了.此外,在那之后,如果我尝试启动内置相机应用程序,我收到一条消息,说明相机无法使用.
我不知道这种行为的原因,它是随机发生的,当它发生时我必须重新启动设备(三星Galaxy S)才能再次使用相机.
在DDM中,崩溃后我可以看到以下行:keyDispatchingTimedOut
以下是相关代码:CameraActivity类:
public class CameraActivity extends Activity {
private static final String TAG = "CameraDemo";
Preview preview;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
preview = new Preview(this);
((FrameLayout) findViewById(R.id.preview)).addView(preview);
((FrameLayout) findViewById(R.id.preview)).setOnTouchListener(preview);
Log.d(TAG, "Camera Activity Created.");
}
}
Run Code Online (Sandbox Code Playgroud)
预览课程:
class Preview extends SurfaceView implements SurfaceHolder.Callback, OnTouchListener {
private static final String TAG = "Preview";
SurfaceHolder mHolder;
public Camera camera;
Context ctx;
boolean previewing = false;
Preview(Context context) {
super(context);
ctx = context;
// Install a SurfaceHolder.Callback so …Run Code Online (Sandbox Code Playgroud) 我打电话给:
Imgproc.matchTemplate(image, templ, result, 0);
Run Code Online (Sandbox Code Playgroud)
并且匹配的结果在Mat实例中.我找不到这个课程的任何文档.如果我理解正确,结果包含一个概率矩阵.我怎样才能找到概率的最大值?我甚至无法理解Mat实例的样子以及它包含的内容.
谢谢Eyal
我正在使用 mapstruct 从/到域对象映射到 DTO 我有 20 多个正确生成的映射器。
我的一个映射器不再生成,但编译成功。我使用 maven 并showWarnings在maven-compiler-plugin配置中打开了标志,但是我没有看到有关该特定映射器的警告(我确实看到了其他映射器的警告)。
有没有办法从注释处理器中获取一些关于未生成的映射器的信息?
我的映射器界面(名称更改):
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
PersonDTO map(Person entity);
Person map(PersonDTO dto);
}
Run Code Online (Sandbox Code Playgroud)
我的Maven配置:
...
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.3.0.Final</version>
</dependency>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
...
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.0.Final</version>
</path>
</annotationProcessorPaths>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud) 我在 Java 中面临一个非常奇怪的行为。我得到了两个没有层次连接的不同类:类模板(类型层次结构是对象 -> A -> B -> 模板)和类 TemplateDto(对象 -> TemplateDto)。
我使用 ModelMapper (org.modelmapper.ModelMapper) 在两个类之间进行映射(由于字段名称相同,因此使用默认映射)。
有以下代码:
List<Template> templates = cvService.getTemplates();
List<TemplateDto> resultDtos = new ArrayList<TemplateDto>();
modelMapper.map(templates,resultDtos);
TemplateDto example = resultDtos.get(0);
Run Code Online (Sandbox Code Playgroud)
最后一行抛出:
java.lang.ClassCastException: com.vs.framework.domain.cv.Template cannot be cast to com.vs.framework.dto.cv.TemplateDto
Run Code Online (Sandbox Code Playgroud)
这很奇怪。当我调试本节时,我看到映射后,resultDtos 是一个 List 类型的列表,而不是 List,这让我大吃一惊。
我试图清理我的 tomcat,maven 清理安装,但它仍然发生。
有任何想法吗?
android ×2
camera ×2
java ×2
c++ ×1
crash ×1
crop ×1
generics ×1
mapstruct ×1
maven ×1
modelmapper ×1
opencv ×1
overriding ×1
photos ×1
polymorphism ×1