function openImg(e){ if(!started) return; var card=e.target; if(card.nodeName==='IMG'){ card=card.parentNode; } if((numCardOpened<2)&&(card.childNodes[0].getAttribute('src')=='imgs/img_star.png')){ var ind=card.getAttribute('id').substring(4); card.childNodes[0].setAttribute('src',cardArr[ind-1]); numCardOpened++; if(numCardOpened==1){ cardOpened=card; } if(numCardOpened==2){ if(cardOpened.childNodes[0].getAttribute('src')==card.childNodes[0].getAttribute('src')){ count=count+2; numCardOpened=0; cardOpened=null; checkAllOpened(); } else{//不相等的图片 setTimeout(function(){ card.childNodes[0].setAttribute('src','imgs/img_star.png'); cardOpened.childNodes[0].setAttribute('src','imgs/img_star.png'); numCardOpened=0; cardOpened=null; },1000); } } } }
时间: 2024-04-28 08:25:43 浏览: 17
这是一个 JavaScript 函数,它的作用是用于翻转一个卡牌游戏中的卡牌。在游戏中,玩家需要翻转卡牌,尝试找到相同的卡牌对。具体实现方式如下:
1. 判断游戏是否已经开始,如果没有开始,则直接返回。
2. 获取点击事件的目标元素,如果目标元素是图片,则获取其父节点。
3. 判断当前已经翻开的卡牌数量是否小于2,并且点击的卡牌是未被翻开的卡牌(即卡牌的图片为 "imgs/img_star.png")。
4. 如果当前已经翻开的卡牌数量为1,则将当前点击的卡牌保存为 cardOpened。
5. 如果当前已经翻开的卡牌数量为2,则判断两张卡牌是否相同。如果相同,则将计数器 count 加 2,重置已翻开卡牌数量 numCardOpened 和卡牌保存变量 cardOpened,并检查是否所有卡牌都已经被翻开。如果不相同,则将两张卡牌翻回去,并重置已翻开卡牌数量 numCardOpened 和卡牌保存变量 cardOpened。
该函数需要在 HTML 页面中引入图片资源,具体实现可以参考 HTML 代码。
相关问题
halcon保存图像操作
根据引用\[1\]中的代码,可以看出在C#中保存图像的操作是通过调用Halcon的WriteImage函数来实现的。具体的代码如下:
```csharp
private void SaveImg_btn_Click(object sender, EventArgs e)
{
SaveFileDialog SaveDg = new SaveFileDialog();
SaveDg.Title = "请选择图像保存路径";
SaveDg.Filter = "Image File(*.bmp)|*.bmp|图像文件(*.jpg)|*.jpg|Image File|*.tif|Image File(*.png)|*.txt|Image File(*.*)|*.*";
try
{
if (SaveDg.ShowDialog() == DialogResult.OK)
{
string ImgSavePath = SaveDg.FileName;
if (!ImgSavePath.Equals(""))
{
HOperatorSet.WriteImage(h_image, "bmp", 0, ImgSavePath);
MessageBox.Show("保存成功!");
}
}
}
catch (System.Exception ex)
{
MessageBox.Show("保存失败!" + ex.Message.ToString());
}
}
```
在这段代码中,通过SaveFileDialog来选择保存图像的路径和文件名,然后调用Halcon的WriteImage函数将图像保存为指定的格式(这里是bmp格式)。保存成功后会弹出一个消息框显示保存成功的提示信息。
另外,根据引用\[3\]中的代码,打开图像的操作是通过调用Halcon的ReadImage函数来实现的。具体的代码如下:
```csharp
private void OpenImg_btn_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "(*.bmp; *.png; *.jpg;*.jpeg; *.tif)|*.bmp; *.png; *.jpg;*.jpeg; *.tif";
openFileDialog1.Title = "请选择图片";
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
ImagePath = openFileDialog1.FileName;
h_image.ReadImage(ImagePath);
}
HOperatorSet.GetImageSize(h_image, out width, out height);
HOperatorSet.SetPart(hwindow, 0, 0, height, width);
h_image.DispObj(hwindow);
}
```
在这段代码中,通过OpenFileDialog来选择要打开的图像文件,然后调用Halcon的ReadImage函数将图像读取到h_image对象中。接着,获取图像的大小并根据大小设置图像显示窗口的大小,最后通过h_image对象的DispObj函数将图像显示在窗口中。
综上所述,以上代码实现了在C#中使用Halcon进行图像的保存和打开操作。
#### 引用[.reference_title]
- *1* *2* *3* [C#联合halcon编程(一):打开\保存图像](https://blog.csdn.net/qq_42890921/article/details/127055086)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
用matlab实现数码管数字识别的代码
以下是一个基于 MATLAB 的数码管数字识别示例代码:
```
% 读取图片
img = imread('digit.jpg');
% 将图片转换为灰度图像
grayImg = rgb2gray(img);
% 对灰度图像进行二值化处理
threshold = graythresh(grayImg);
binaryImg = im2bw(grayImg, threshold);
% 去除噪点
se = strel('disk', 2);
openImg = imopen(binaryImg, se);
% 分割数字
cc = bwconncomp(openImg);
stats = regionprops(cc, 'BoundingBox');
for i = 1 : length(stats)
bbox = stats(i).BoundingBox;
digit = imcrop(openImg, bbox);
% 对每个数字进行识别
% ...
end
```
需要注意的是,这只是一个简单的示例代码,实际的数字识别算法需要更加复杂。你可以参考数字识别领域的相关论文和代码库来实现更加准确的数字识别算法。
相关推荐
![sln](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)