module count(out,clk,rst)//源程序
input clk,rst
output[3:0] out
reg[3:0] out
initial out=4'd0
always @(posedge clk or negedge rst)
begin
if(!rst) out=4'd0
else
begin
out=out+4'd1
if(out==4'd1||out==4'd6||out==4'd8) out=out+4'd1
if(out==4'd5) out=out+4'd2
end
end
endmodule
`timescale 1ns/1ns //测试程序
`include "count.v"
module count_tp
reg clk,rst
wire[3:0] out
parameter DELY=100
count mycount(out,clk,rst)
always #(DELY/2) clk=~clk
initial
begin
clk=0rst=1
#(DELY*5) rst=0
#DELY rst=1
#(DELY*20) $finish
end
initial $monitor($time,,,"clk=%d rst=%d out=%d",clk,rst,out)
endmodule
使用OpenCV测量图像中物体的大小图像目标尺寸检测类似于计算从我们的相机到一个物体的距离——在这两种情况下,我们都需要事先定义一个比率来测量每个给定度量单位的像素数(pixels_per_metric)。在这里所说的这个被称为“pixels_per_metric”的比率指标,我在接下来的部分中对其更正式的定义。
pixels_per_metric
为了确定图像中物体的大小,我们首先需要使用一个参照物作为“校准”点。我们的参照物应该有两个重要的属性:
我们应该知道这个物体的真实尺寸(在宽度或高度上的毫米或英寸等值的大小)。
我们应该能够轻松地在图片中找到这个参照物,要么基于参照物的位置(如,参照物可以是一副图像中左上角的物体)或基于参照物的外表(例如参照物可以是图片中具有最独特的颜色或独一无二的形状,不同于所有其他的物体)。
在任何一种情况下,我们的参考应该以某种方式唯一可识别。
在这个例子中,我们将使用美分硬币作为我们的参照物,并且在所有示例中,确保它始终是我们图像中最左边的对象。
图1:我们将使用美分硬币作为参照物,并确保它始终处于图像最左侧位置,这使得我们可以通过对它们位置的轮廓大小进行排序,进一步来提取信息。
通过保证美分硬币是最左边的物体,我们可以从左到右对我们的物体等高线区域进行排列,抓住这个硬币(它将始终对应于排序列表中的第一个等高线区域)。并使用它来定义我们的pixels_per_metric比率,我们将其定义为:
pixels_per_metric =物体像素宽 / 物体真实宽
美分硬币的真实宽度是0.955英寸。现在,假设我们图像中硬币的像素宽为150像素(基于它的相关边界框)。那么这种情况下pixels_per_m
参考实例源码如下://#include <stdlib.h>
#include <iostream>
using namespace std
int main()
{
int i,j,k,l=0,n
cout<<"小学数学测试"<<endl
cout<<"请选择想测试的题型:1.+ 2.- 3.* 4./:"
cin>>i
if(i==1)
{
cout<<"请输入测试题的个数:"
cin>>j
for(int k1=0k1<jk1++)
{
srand((unsigned)time(NULL))
int x1=rand()%100
int x2=rand()%100
cout<<x1<<"+"<<x2<<"=:"
cin>>k
if(k==x1+x2){
cout<<"回答正确!"<<endl
l++
}
else
cout<<"回答错误!正确答案为:"<<x1+x2<<endl
}
}
else if(i==2)
{
cout<<"请输入测试题的个数:"
cin>>j
for(int k1=0k1<jk1++)
{
srand((unsigned)time(NULL))
int x1=rand()%100
int x2=x1+rand()%50
cout<<x2<<"-"<<x1<<"=:"
cin>>k
if(k==x2-x1){
cout<<"回答正确!"<<endl
l++
}
else
cout<<"回答错误!正确答案为:"<<x2-x1<<endl
}
}
else if(i==3)
{
cout<<"请输入测试题的个数:"
cin>>j
for(int k1=0k1<jk1++)
{
srand((unsigned)time(NULL))
int x1=rand()%100
int x2=rand()%100
cout<<x1<<"*"<<x2<<"=:"
cin>>k
if(k==x1*x2){
cout<<"回答正确!"<<endl
l++
}
else
cout<<"回答错误!正确答案为:"<<x1*x2<<endl
}
}
else if(i==4)
{
cout<<"请输入测试题的个数:"
cin>>j
for(int k1=0k1<jk1++)
{
srand((unsigned)time(NULL))
int x1=rand()%100+1
int x2=x1*(rand()%10)
cout<<x2<<"/"<<x1<<"=:"
cin>>k
if(k==x2/x1){
cout<<"回答正确!"<<endl
l++
}
else
cout<<"回答错误!正确答案为:"<<x2/x1<<endl
}
}
cout<<"这次测试你作对的题目的个数为"<<l<<"个"<<endl
cout<<"是否继续测试:0.退出 1.继续:"
cin>>n
if(n==1){
return main()}
//system("PAUSE")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)